Алгоритм Луна
Вычисляет контрольную сумму последовательности цифр при помощи алгоритма Луна, вычисляет проверочную цифру (цифру, которую можно добавить к исходной последовательности, чтобы получить последовательность с контрольной суммой оканчивающейся на 0).
Этот материал распространяется на условиях лицензии Creative Commons Attribution/Share-Alike License 3.0 (Unported). Это означает, что вы можете размещать этот контент на своем сайте или создавать на его основе собственный (в том числе и в коммерческих целях), при условии сохранения оригинального лицензионного соглашения. Кроме того, Вы должны отметить автора этой работы, путем размещения HTML ссылки на оригинал работы https://planetcalc.ru/2464/. Пожалуйста оставьте без изменения все ссылки на других авторов данной работы или работы, на основе которой создана данная работа (если таковые имеются в спроводительном тексте).
Алгоритм был разработан немецким компьютерным специалистом Гансом Луном в 1954-м году. Алгоритм Луна использует простое правило вычисления контрольной суммы для проверки идентификационных номеров, таких как номера пластиковых карт. Алгоритм был придуман для определения ошибок при вводе номера. Алгоритм определяет ошибки ввода одной неправильной цифры, а также почти все перестановки соседних цифр, за исключением перестановки 09-90 или обратной 90-09.
Следующий калькулятор выдает последнюю цифру контрольной суммы, полученной алгоритмом Луна из заданной последовательности. Также вычисляется проверочная цифра, которая может быть добавлена к исходной последовательности, чтобы получить корректную последовательность( т. е. последовательность, контрольная сумма которой оканчивается на 0).
Формула очень проста: для того чтобы определить контрольную сумму в соответствии с алгоритмом Луна необходимо просуммировать все нечетные цифры последовательности справа налево, далее прибавить к сумму всех четных цифр, помноженных на 2, при этом если произведение получается больше 9, то из него вычитается 9.
Для определения проверочной цифры мы попросту добавляем «0» к исходной последовательности и вычисляем контрольную сумму полученной последовательности алгоритмом Луна, если полученная контрольная сумма оканчивается на 0, то проверочная цифра это и есть 0, в противном случае проверочная цифра определяется путем вычитания последней цифры полученной контрольной суммы из 10.
Комментарии