Первое использует значение на уровне и ЗАТЕМ incrmenting это.
последний использует level+1 в качестве переданной переменной.
Алгоритм Луна достаточно хорош для индустрии кредитных карт ...
Как отмечает Ричи Хиндл, алгоритм Луна довольно хорош. Он обнаружит (но не исправит) любую одну ошибку или перестановку (кроме перестановки 0 и 9).
Вы также можете рассмотреть алгоритм для контрольных цифр ISBN , хотя для ISBN старого стиля, контрольной цифрой иногда является "X", что может быть проблемой для вас, если вы используете целочисленные поля. ISBN нового стиля, похоже, не имеет этой проблемы. Википедия не описывает теоретические свойства системы, но я помню, как давно изучал номера ISBN в своем курсе теории кодирования, так что я думаю, что они довольно хороши: -)