Личные финансы
Запатентован алгоритм Луна
23 августа 1960 года был запатентован алгоритм, применяющийся для создания номера банковской карты.
Каждый человек в повседневной жизни сталкивается с большим количеством регистрационных номеров. Это номера банковских счетов, карт, а также бесчисленного множества государственных документов: ИНН (индивидуальный номер налогоплательщика), СНИЛС (свидетельства пенсионного страхования), номер паспорта, в конце концов.
И часто эти номера приходится кому-то сообщать: вводить номер паспорта при покупке билетов, заполнять формы при приёме на работу и не только, вводить реквизиты банковской карты при покупке (пользуясь случаем, напоминаем: сообщайте информацию о своих банковских картах только проверенным и надёжным получателем, остерегайтесь мошенников!). А при вводе длинного номера (например, номера банковских карт состоят из 16 цифр) весьма вероятны технические ошибки, описки и опечатки.
Чтобы помочь выявлять случаи, когда произошла такая ошибка и предотвращать её последствия работник IBM (одной из старейших фирм по производству вычислительных машин) разработал специальный алгоритм, названный в его честь. Он предполагает, что к собственно номеру объекта (например, банковской карты) добавляется контрольная цифра, вычисляемая следующим образом:
Все цифры номера умножаются на два;
Если получающийся результат – двузначное число, вычитаем 9;
Суммируем получающиеся цифры;
Выбираем контрольную цифру так, чтобы вместе с ним сумма была кратна 10.
Например, если наш номер – 1-3-5-7-9, то описанные преобразования дадут:
2-6-8-10-14-18
2-6-8-1-5-9
2+6+8+1+5+9=31
Контрольная цифра =40-31=9
Соответственно, получившийся шестизначный номер: 135799
Этот нехитрый алгоритм позволяет найти практически любую ошибку, связанную со случайной заменой одной из цифр номера на другую: если получатель номера проделает аналогичные операции, но обнаружит, что его контрольная цифра – не 9, это будет означать, что произошла ошибка. Правда, если ошибочно переставить цифры местами, контрольная цифра не изменится.
Любопытно, что изначально был запатентован не только алгоритм, но и специальная машина, позволяющая автоматически находить контрольную цифру. Сейчас, конечно же, все вычисления производятся куда более мощными компьютерами и зачастую организации, выпускающие документы, пользуются не алгоритмом Луна, а более сложной методикой, позволяющей обнаруживать большее количество ошибок. Но вот для выпуска банковских карт именно алгоритм Луна стал всеобщим стандартом.
Ольга Клачкова, экспертКандидат экономических наук, преподаватель экономического факультета МГУ имени М. В. Ломоносова, профессиональные интересы: макроэкономика, экономический рост, инфляция, неравенство, анализ социальных взаимодействий, методы оптимальных решений.Последствия ошибки при работе с финансами для индивида могут быть довольно критичными: представьте только, что, совершая перевод денежных средств, Вы ошиблись в номере карты получателя! Чтобы избежать подобных технических ошибок и создаются такие методики, как алгоритм Луна. Будучи встроенными в банковские приложения, они позволят запросто обнаружить ошибку до того, как она станет неисправимой.