Какое минимальное число длины будет работать алгоритм Луна? - PullRequest
1 голос
/ 30 сентября 2008

За исключением контрольной цифры, для какой минимальной длины будет работать алгоритм Луна?

Я думаю, что он будет работать с любым числом больше 2 цифр (опять же, исключая контрольную цифру).

Причина, по которой я спрашиваю, такова: если я перебираю все цифры числа справа налево. Это приводит к тому, что i% 2 == 0 (используется для поиска альтернативных позиций в числе) в моей проверке luhn не работает, если число составляет 3 цифры или меньше (например, 125 - что на бумаге кажется действительным числом)

Очевидно, что я мог бы изменить свое состояние с i% 2 == 0 на что-то другое, но если это неправильное поведение для алгоритма, было бы неплохо знать.

1 Ответ

4 голосов
/ 30 сентября 2008

Алгоритм Луна будет работать на двух цифрах. Он предупредит, если одна цифра неверна и в некоторых (но не во всех) случаях, когда цифры транспонированы. Черт, теоретически это будет работать с одной цифрой, но это не очень полезно. Вы можете убедиться сами, зафиксировав одну цифру, затем изменив другую и убедившись, что каждое значение другой цифры даст уникальную «контрольную сумму». Однако, если добавить всего две цифры, то просто добавив цифры 10, вы получите то же свойство, но не обнаружите никаких ошибок транспонирования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...