Интернет магазин китайских планшетных компьютеров



Компьютеры - Universal Product Code - Расчёт контрольного числа

12 мая 2011


Оглавление:
1. Universal Product Code
2. Усовершенствование кода для применения в других странах
3. Общее описание структуры
4. Кодировка цифр
5. Расчёт контрольного числа
6. Кодировка товара



В коде UPC-A контрольное число рассчитывается следующим образом:


  1. Суммируются все цифры на нечётных позициях и результат умножается на три.
  2. Суммируются все цифры на чётных позициях.
  3. Числа, полученные на предыдущих двух шагах, складываются, и из полученного результата оставляется только последняя цифра.
  4. Эту цифру вычитают из 10.
  5. Конечный результат этих вычислений и есть контрольная цифра.

Например, контрольное число для приведённого на рисунке штрихкода UPC-A «03600029145X», где «X» — это искомая контрольная цифра, рассчитывается путём сложения всех нечётных цифр, умножается на три, результат суммируется со всеми чётными цифрами, отбрасывается всё, кроме последней цифры, вычитается из 10 и ещё раз, если это необходимо, отбрасывается всё, кроме последней цифры. Искомое контрольное число — цифра 2.

При считывании кода правильность считывания проверяется похожим способом, но несколько проще:

  1. cуммируются все чётные цифры, включая контрольную цифру.
  2. cуммируются все нечётные цифры и умножаются на 3.
  3. эти суммы складываются и оставляется последняя цифра от результата.

Технически цифры обрабатываются последовательно, за один проход, с умножением каждой цифры на 1 или 3, в зависимости от чётности позиции, добавлением к сумме и взятием остатка по модулю 10 от текущей суммы. Иными словами десятки сразу отбрасываются, что сильно упрощает механизм вычисления.

Если результат равен нулю, то принимается решение, что код считан правильно, если любая другая цифра, то код однозначно считан неверно.

По поводу кодирования контрольного числа можно услышать три вопроса:

1. Почему всё так сложно, зачем умножать на 3, почему нельзя просто сложить цифры друг с другом без этого умножения?

Ответ: Потому, что коды рассчитаны не только для ввода сканером, иногда кассир может вводить его вручную. Человек ведь иногда не только ошибается, вводя другую цифру. Часто он переставляет правильные цифры местами. То есть, например, вместо 2252 может ввести 2522. Или другой вариант — он может ввести лишний ноль в одной части кода и убрать в другой. Например, вместо 00300 может ввести 00030. Простое сложение цифр не сможет отследить ошибки такого типа, а вышеуказанный на это способен.

2. Почему умножается на 3, а не на 2 или 5?

Ответ: Если взять таблицу умножения из школьной тетради и посмотреть на результаты умножения цифр на 3, то можно заметить, что для каждого числа последняя цифра в результате умножения разная и не повторяется. То есть, каждому исходному числу от 0 до 9 соответствует другое уникальное число от 0 до 9.

Альтернативный ответ: чтобы сохранить количество классов вычетов, число m, на которое мы умножаем, должно быть взаимно просто с n. С 10 взаимно просты четыре числа: 1, 3, 7, 9.

3. Почему при вычислении контрольного числа на 4-м шаге из 10 вычитается последняя цифра суммы, ведь можно было просто записать эту цифру, полученную на шаге 3 и дело с концом, к чему такие сложности?

Ответ: Упрощение контроля. При контроле единственный правильный ответ — ноль.



Просмотров: 8083


<<< QR-код