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

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

❓Инструкция

📘 Онлайн калькулятор «Алгоритм Луна» для проверки идентификационных номеров, таких как номера кредитных карт, номер IMEI и подобные.


ℹ
 Как пользоваться:

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


ℹ
 Ответ возможно получить с этапами решения, если выставить галочку «подробнее».

 

! Ограничения:

! Номер вводится единой последовательностью без пробелов, запятых и прочих спецсимволов (например: 0123456789).
! Минимальная длина номера — 1, максимальная — 500.

📖 Теория

📌 Алгоритм Луна — простая формула для проверки контрольной суммы. В основном используется для проверки  различных идентификационных номеров, таких как номера кредитных карт, номер IMEI и тому подобные. Это не только помогает исправлять ошибки ввода данных, но и служит слабым средством обеспечения безопасности.

 

📌 Большинство кредитных карт и многие правительственные идентификационные номера используют алгоритм в качестве простого метода отличия действительных номеров от опечаток или неправильных номеров. Он был разработан для защиты от случайных ошибок, а не от злонамеренных атак.


📌 Шаги алгоритма:

 

ℹ На входе числовая последовательность — номер.

 

✔ Начиная с последней цифры номера удвоим каждую вторую цифру карты.
✔ Если в процессе удвоения получились числа большее 9, сложим две цифры полученного результата вместе и поставим их на место исходной цифры.
✔ Суммируем все полученные числа в номере
✔ Если последняя цифра суммы 0, то остаток от деления суммы чисел на 10 равно 0, а следовательно, номер карты действителен, иначе — недействителен.


📌 Как определить следующую проверочную цифру:


ℹ 
Под следующей проверочной цифрой будем понимать такую цифру от 0 до 9, которую можно добавить в конец к исходной последовательности для получения корректного номера.

 

✔ Добавим в конец исходной последовательности 0.
✔ Проверим новую последовательность алгоритмом Луна.
✔ Получим сумму, аналогично проверим, если последняя цифра суммы — 0, то проверочная цифра — это 0, иначе, для получения проверочной цифры необходимо отнять от 10 последнюю цифру суммы. 


ℹ
 Нагляднее в примерах.

➕ Примеры

📍Пример:

Рассмотрим пример номера счета «79927398713″.

Шаг 1. Начиная с последней цифры номера удвоим каждую вторую цифру карты.

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

Шаг 2. Если при удвоении числа получается двухзначное число, то есть больше 9 (например, 6 × 2 = 12), прибавим цифры числа (например, 12: 1 + 2 = 3, 15: 1 + 5 = 6), чтобы получить однозначное число.

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

Шаг 3. Снесем однозначные числа из первой строки в текущую последовательность.

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

Шаг 4. Теперь сложим все цифры полученной последовательности (последняя строка)Если сумма по модулю 10 равна 0 (если сумма заканчивается на нуль), то последовательность действительна в соответствии с формулой Луна; иначе — недействительна.

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

Поскольку сумма равна 70, что кратно 10, номер счета действителен.


Конец алгоритма.

 

📍 Теперь определим следующую проверочную цифру. Что такое следующая проверочная цифра в алгоритме Луна? Смотреть раздел «Теория».

 

 ✔ Добавим в конец номера 0, получим:

7 9 9 2 7 3 9 8 7 1 3 0

 ✔ Проверим новую последовательность алгоритмом Луна, аналогично, как мы это делали выше.

 

✔  Получим последовательность

5 9 9 2 5 3 9 8 5 1 6 0

 

✔ Сумма цифр последовательности s = 62 не оканчивается на 0, последняя цифра суммы равна 2.

 

✔ Чтобы получить проверочную цифру, необходимо отнять от 10 последнюю цифру суммы.

 
✔ Проверочная цифра: 10 − 2 = 8

ℹ Таким образом: сумма s = 70, следующая проверочная цифра 8.

ℹ Заметили неточность в работе калькулятора? Убедительная просьба сообщить об этом в комментариях или через форму обратной связи. Заранее Вас благодарим.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *