Pavel Gulchouck (gul_kiev) wrote,
Pavel Gulchouck
gul_kiev

Алгоритм Луна

Недавно набрёл на алгоритм Луна - это контрольная сумма, использующаяся для проверки номеров кредитных карточек. Если вы вместо номера кредитки введёте случайную последовательность из 16 цифр, то, скорее всего, вам ответят, что это некорректный номер, без запросов к банку.
Алгоритм этот настолько прост, что доступен даже для человека. Это почти сумма цифр по модулю 10, но с небольшой модификацией: каждая вторая цифра удваивается, и если получается больше девяти, то вычитается 9. Сумма всех цифр карточки, каждая вторая из которых модифицирована таким способом, должна делиться на 10. Изменение любой одной цифры приводит к несовпадению контрольной суммы, и перестановка почти любых двух соседних цифр тоже даёт некорректный номер.

Первая мысль - это же задача уровня старшеклассника. А написано пафосно: "разработан сотрудником IBM", "запатентован", как будто это какое-то научное открытие. Я понимаю, можно давать имя и патентовать правильные математические алгоритмы вроде LZW или кодов Хемминга, но тут-то? Алгоритм Верхуффа - уже хорошо, к тому же, он в отличие от алгоритма Луна даёт правильное решение поставленной задачи (защититься от искажения любой одной цифры и от перестановки двух соседних цифр).

Настолько просто, что доступно даже для человека. Я немного подвис на этой фразе.
Управление этим самолётом настолько просто, что доступно даже для человека.
Этот метод диагностики болезней настолько прост, что доступен даже для человека.

Человек уж совсем тупым тормозом считается по сравнению с машинами. Заслуженно, наверное?
  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 9 comments