Контрольне число, контрольна цифра, контрольний розряд — різновид контрольної суми, зазвичай додається у кінець довгих номерів для первинної перевірки їхньої правильності. Використовується для зменшення ймовірності помилки при обробці таких номерів: машинному зчитуванні з упаковки товару, записуванні в документи, голосовій передачі тощо.
Наявність і правильність контрольного числа не гарантує достовірність номера, але на практиці достатньо добре запобігає випадковим помилкам.
Контрольне число найчастіше це або остання цифра суми всіх чисел номера, або результат іншої математичної операції над цифрами. У комп'ютерних програмах поняття «контрольного числа» узагальнено до CRC, біта парності і Кодів Ріда-Соломона.
Контрольні числа, зазвичай дозволяють відновити одну загублену цифру за умови, що відомо, на якій позиції в номері вона має перебувати і що всі інші цифри в номері правильні. Якщо відомо, на якій позиції є помилка, потрібно перебрати всі можливі варіанти (наприклад, для 13-значного номера їх буде 13), а з них обрати найбільш ймовірні (виходячи з аналізу змістової інформації в номері).
У системах нумерації GS1 (EAN-13, EAN-8, ITF-14, GS1-128) цифри номера нумеруються справа наліво …n3n2n1, таким же чином, як і відповідні їм коефіцієнти …k3k2k1.
k13 | k12 | k11 | k10 | k9 | k8 | k7 | k6 | k5 | k4 | k3 | k2 | k1 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
EAN-13 | 1 | 3 | 1 | 3 | 1 | 3 | 1 | 3 | 1 | 3 | 1 | 3 | 1 |
UPC-12 | |||||||||||||
EAN-8 |
Зазвичай змістова інформація (код країни, товару, банка й т.п.) перебуває в лівій частині номера, а контрольне число (цифра) є завершальним (найправіша) і має номер 1 (n1), однак з математичної точки зору всі цифри коду, як правило, рівноправні, і будь-яка з них може вважатися контрольною для інших. Значення змістової частини номера можна переглянути в описі відповідного коду.
Алгоритм розрахунку контрольного числа:
Алгоритм розрахунку контрольної суми:
Якщо потрібно підрахувати контрольне число для довільного номера, то потрібно спочатку поставити «0» на крайню праву позицію, підрахувати контрольну суму, а потім, якщо вона не дорівнює нулю, замінити цей «0» на «10 — контрольна сума».
4084500019195 (дезодорант від «Procter & Gamble»)
Крок 1 +---+---+---+---+---+---+---+---+---+---+---+---+ +---+ | 4 | 0 | 8 | 4 | 5 | 0 | 0 | 0 | 1 | 9 | 1 | 9 | | ? | +---+---+---+---+---+---+---+---+---+---+---+---+ +---+ | | | | | | | | | | | | x1 x3 x1 x3 x1 x3 x1 x3 x1 x3 x1 x3 | | | | | | | | | | | | =4 =0 =8 =12 =5 =0 =0 =0 =1 =27 =1 =27 Крок 2 4 +0 +8 +12 +5 +0 +0 +0 +1 +27 +1 +27 = 85 Крок 3 Найменше число, що в сумі з числом 85 дає число кратне 10 це 5 (90 = 85 + 5) Результат +---+---+---+---+---+---+---+---+---+---+---+---+ +---+ | 4 | 0 | 8 | 4 | 5 | 0 | 0 | 0 | 1 | 9 | 1 | 9 | | 5 | +---+---+---+---+---+---+---+---+---+---+---+---+ +---+
Контрольне число 5, а отже номер правильний.
40345208 (дитяча присипка «Bübchen»)
Крок 1 +---+---+---+---+---+---+---+ +---+ | 4 | 0 | 3 | 4 | 5 | 2 | 0 | | ? | +---+---+---+---+---+---+---+ +---+ | | | | | | | x3 x1 x3 x1 x3 x1 x3 | | | | | | | =12 =0 =9 =4 =15 =2 =0 Крок 2 12 +0 +9 +4 +15 +2 +0 = 42 Крок 3 Найменше число, що в сумі з числом 42 дає число кратне 10 це 8 (50 = 42 + 8) Результат +---+---+---+---+---+---+---+ +---+ | 4 | 0 | 3 | 4 | 5 | 2 | 0 | | 8 | +---+---+---+---+---+---+---+ +---+
Контрольне число 8, а отже номер правильний.
041689300494 (бензин для запальнички «Zippo»)
Крок 1 +---+---+---+---+---+---+---+---+---+---+---+ +---+ | 0 | 4 | 1 | 6 | 8 | 9 | 3 | 0 | 0 | 4 | 9 | | ? | +---+---+---+---+---+---+---+---+---+---+---+ +---+ | | | | | | | | | | | x3 x1 x3 x1 x3 x1 x3 x1 x3 x1 x3 | | | | | | | | | | | =0 =4 =3 =6 =24 =9 =9 =0 =0 =4 =27 Крок 2 0 +4 +3 +6 +24 +9 +9 +0 +0 +4 +27 = 86 Крок 3 Найменше число, що в сумі з числом 86 дає число кратне 10 це 4 (90 = 86 + 4) Результат +---+---+---+---+---+---+---+---+---+---+---+ +---+ | 0 | 4 | 1 | 6 | 8 | 9 | 3 | 0 | 0 | 4 | 9 | | 4 | +---+---+---+---+---+---+---+---+---+---+---+ +---+
Контрольне число 4, а отже номер правильний.
Крок 1 +---+---+---+---+---+---+---+---+---+---+---+---+---+ | 5 | 9 | 0 | 1 | 2 | 3 | 4 | 1 | 2 | 3 | 4 | 5 | 7 | +---+---+---+---+---+---+---+---+---+---+---+---+---+ | | | | | | | | | | | | | x1 x3 x1 x3 x1 x3 x1 x3 x1 x3 x1 x3 x1 | | | | | | | | | | | | | =5 =27 =0 =3 =2 =9 =4 =3 =2 =9 =4 =15 =7 Крок 2 5 +27 +0 +3 +2 +9 +4 +3 +2 +9 +4 +15 +7 = 90 Крок 3 90 % 10 = 0
Контрольна сума 0, а отже номер правильний.
Цифри номера нумеруються зліва направо n1n2n3…, таким же чином, як і відповідні їм коефіцієнти k1k2k3…
k1 | k2 | k3 | k4 | k5 | k6 | k7 | k8 | k9 | k10 | k11 | k12 | k13 | k14 | k15 | k16 | k17 | k18 | k19 | k20 | k21 | k22 | k23 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
7 | 1 | 3 | 7 | 1 | 3 | 7 | 1 | 3 | 7 | 1 | 3 | 7 | 1 | 3 | 7 | 1 | 3 | 7 | 1 | 3 | 7 | 1 |
Контрольною вважається дев'ята цифра в номері банківського рахунку.
Для розрахунку контрольного розряду використовується наступний алгоритм:
Р/Р 40702810?00000000014, БІН 044544512
Крок 1 +---+---+---+ +---+---+---+---+---+---+---+---+ +---+ +---+---+---+---+---+---+---+---+---+---+---+ | 5 | 1 | 2 | | 4 | 0 | 7 | 0 | 2 | 8 | 1 | 0 | | ? | | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 4 | +---+---+---+ +---+---+---+---+---+---+---+---+ +---+ +---+---+---+---+---+---+---+---+---+---+---+ Крок 2 +---+---+---+ +---+---+---+---+---+---+---+---+ +---+ +---+---+---+---+---+---+---+---+---+---+---+ | 5 | 1 | 2 | | 4 | 0 | 7 | 0 | 2 | 8 | 1 | 0 | | 0 | | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 4 | +---+---+---+ +---+---+---+---+---+---+---+---+ +---+ +---+---+---+---+---+---+---+---+---+---+---+ Крок 3 +---+---+---+ +---+---+---+---+---+---+---+---+ +---+ +---+---+---+---+---+---+---+---+---+---+---+ | 5 | 1 | 2 | | 4 | 0 | 7 | 0 | 2 | 8 | 1 | 0 | | 0 | | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 4 | +---+---+---+ +---+---+---+---+---+---+---+---+ +---+ +---+---+---+---+---+---+---+---+---+---+---+ | | | | | | | | | | | | | | | | | | | | | | | x7 x1 x3 x7 x1 x3 x7 x1 x3 x7 x1 x3 x7 x1 x3 x7 x1 x3 x7 x1 x3 x7 x1 | | | | | | | | | | | | | | | | | | | | | | | =35 =1 =6 =28 =0 =21 =0 =2 =24 =7 =0 =0 =0 =0 =0 =0 =0 =0 =0 =0 =0 =7 =4 Крок 4 35 +1 +6 +28 +0 +21 +0 +2 +24 +7 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +7 +4 = 135 Крок 5 Остання цифра з кроку 4 множиться на 3. 5 x 3 = 15. Остання цифра від 15 - це 5, отже контрольне число - 5 Результат +---+---+---+---+---+---+---+---+ +---+ +---+---+---+---+---+---+---+---+---+---+---+ | 4 | 0 | 7 | 0 | 2 | 8 | 1 | 0 | | 5 | | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 4 | +---+---+---+---+---+---+---+---+ +---+ +---+---+---+---+---+---+---+---+---+---+---+
Отже розрахунковий рахунок матиме вигляд: 40702810500000000014
Перевірка правильності номера розрахункового рахунку проводиться за тим же алгоритмом. Якщо остання цифра суми, отриманої на кроці 4, дорівнює нулю, то такий номер рахунку вважається правильним.
Нумерація платіжних карток описується стандартом ISO/IEC 7812-1, а для обчислення контрольного числа застосовують алгоритм Луна.
Цифри номера нумеруються справа наліво …n3n2n1, таким же чином, як і відповідні їм коефіцієнти …k3k2k1.
k16 | k15 | k14 | k13 | k12 | k11 | k10 | k9 | k8 | k7 | k6 | k5 | k4 | k3 | k2 | k1 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
платіжні картки, 16 цифр | 2 | 1 | 2 | 1 | 2 | 1 | 2 | 1 | 2 | 1 | 2 | 1 | 2 | 1 | 2 | 1 |
платіжні картки, 13 цифр |
Контрольною вважається цифра n1 (остання в номері).
Алгоритм Луна:
6076 6000 0061 9992
Крок 1 +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ +---+ | 6 | 0 | 7 | 6 | 6 | 0 | 0 | 0 | 0 | 0 | 6 | 1 | 9 | 9 | 9 | | ? | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ +---+ | | | | | | | | | | | | | | | x2 x1 x2 x1 x2 x1 x2 x1 x2 x1 x2 x1 x2 x1 x2 | | | | | | | | | | | | | | | =12 | =14 | =12 | | | | | =12 | =18 | =18 -9 | -9 | -9 | | | | | -9 | -9 | -9 | | | | | | | | | | | | | | | =3 =0 =5 =6 =3 =0 =0 =0 =0 =0 =3 =1 =9 =9 =9 Крок 2 3 +0 +5 +6 +3 +0 +0 +0 +0 +0 +3 +1 +9 +9 +9 = 48 Крок 3 Найменше число, що в сумі з числом 48 дає число кратне 10 це 2 (50 = 48 + 2) Результат +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ +---+ | 6 | 0 | 7 | 6 | 6 | 0 | 0 | 0 | 0 | 0 | 6 | 1 | 9 | 9 | 9 | | 2 | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ +---+
Контрольне число 2, а отже номер правильний.
Контрольні суми та контрольні числа для кодів ISIN обчислюються за алгоритмом Луна подібно до розрахунку у випадку банківських платіжних карток. Правило продовження таблиці ліворуч (для довгих номерів) та зменшення її для коротких номерів є очевидним. Загальне правило для швидкого визначення коефіцієнта: парні коефіцієнти дорівнюють 2, непарні — 1. У разі наявності у номері (коді) ISIN латинських літер, кожна з них змінюється на дві цифри, що відповідають порядковому номеру цієї літери у латинській абетці, збільшеному на 9 (тобто A ~ 10, B ~ 11, …, Z ~ 35). Так, букви UA, наприклад, замінюються на 3010.
UA4000117501 — Акція проста бездокументарна іменна ПАТ Укрнафта
Крок 1 +---+---+---+---+---+---+---+---+---+---+---+---+---+ +---+ | 3 | 0 | 1 | 0 | 4 | 0 | 0 | 0 | 1 | 1 | 7 | 5 | 0 | | ? | +---+---+---+---+---+---+---+---+---+---+---+---+---+ +---+ | | | | | | | | | | | | | x2 x1 x2 x1 x2 x1 x2 x1 x2 x1 x2 x1 x2 | | | | | | | | | | | | | | | | | | | | | | | =14 | | | | | | | | | | | | -9 | | | | | | | | | | | | | | | =6 =0 =2 =0 =8 =0 =0 =0 =2 =1 =5 =5 =0 Крок 2 6 +0 +2 +0 +8 +0 +0 +0 +2 +1 +5 +5 +0 = 29 Крок 3 Найменше число, що в сумі з числом 29 дає число кратне 10 це 1 (30 = 29 + 1) Результат +---+---+---+---+---+---+---+---+---+---+---+---+---+ +---+ | 3 | 0 | 1 | 0 | 4 | 0 | 0 | 0 | 1 | 1 | 7 | 5 | 0 | | 1 | +---+---+---+---+---+---+---+---+---+---+---+---+---+ +---+
Контрольне число 1, а отже номер правильний.
10-значний номер містить 1 контрольну цифру наприкінці. Контрольне число є залишком від ділення на 11 суми добутків цифр коду на відповідні коефіцієнти з таблиці. Якщо залишок від ділення на 11 дорівнює 10, то старший розряд відкидається і контрольне число буде 0.
k1 | k2 | k3 | k4 | k5 | k6 | k7 | k8 | k9 | k10 |
---|---|---|---|---|---|---|---|---|---|
-1 | 5 | 7 | 9 | 4 | 6 | 10 | 5 | 7 |
Приклад:
РНОКПП 3184710691 — 10 цифр.
Знаходимо суму добутків: 3×(-1) + 1×5 + 8×7 + 4×9 + 7×4 + 1×6 + 0×10 + 6×5 + 9×7 = -3 + 5 + 56 + 36 + 28 + 6 + 0 + 30 + 63 = 221
221 = 20×11 + 1 (залишок від ділення)
Залишок збігається з останньою (контрольною) цифрою наведеного номера. Номер правильний.
Існує алгоритм перевірки контрольного розряду коду ().
Унікальний номер запису у Єдиному державному демографічному реєстрі складається із 13 цифр, може бути розділений рискою після 8 позиції. Перші 8 цифр – дата народження (YYYYMMDD), решта 5 цифр номер запису на цей день (з них остання це контрольна цифра). Формула розрахунку контрольної цифри та приклад описано у частині 3 документа Doc 9303 (цифри 731 731... по модулю 10).
{{cite web}}
: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання)