Алгоритм Луна - в чем секрет номера банковской карты // Vital Math
ฝัง
- เผยแพร่เมื่อ 28 พ.ค. 2024
- Номер банковской карты - это не просто случайный набор цифр. Как математика помогает меньше ошибаться и при чем тут алгоритм Луна? #vitalmath
+ Алгоритм Луна ru.wikipedia.org/wiki/%D0%90%...
+ Лун en.wikipedia.org/wiki/Hans_Pe...
+ Посмотреть ещё раз но немного по-другому: • 97% ЛЮДЕЙ НЕ ЗНАЮТ ЭТО...
Что внутри:
0:00 - Какие тайны?
0:51 - Как устроена карта
1:57 - Алгоритм Луна
3:45 - История алгоритма
4:48 - Где используется
5:20 - Три вывода
6:12 - Задание на попробовать
Хорошее видео. Только поправочка, складываем цифры не когда больше 10, а когда больше 9.
@@MaxPV1981 в конце алгоритма складываются Все числа, в т.ч. четные, поэтому не важно в какой цифре вы допустите ошибку
@@pavelsokolov1705 Да, увидел, спасибо.
Включая 10
@@pavelsokolov1705капец вьі умньіе.
Спасибо за интересный ролик! Но для моих карт алгоритм Луна не работает, какие бы цифры я не вводил, сразу появляется сообщение "у тебя на карте денег нет" и неважно есть ошибки при вводе номера карты или нет.
У банковских 20-значных счетов тоже есть ключ (9 цифра), но там алгоритм сложнее. Но в результате тоже по модулю 10 сумма проверяется
Хотелось бы ролик про штрих-коды - UPS, EAN-13 и тд
2:07 не на нечётную цифру, а на цифру с нечётным номером в строке. А то, смотрю, почему восьмёрки на 2 умножаются, не с разу въехал.
В алгоритме Луна есть небольшая недоработка: если переставить местами рядом стоящие цифры 0 и 9 (или 9 и 0) - то контрольная сумма не поменяется, так как они при удвоении такие же по цифровому корню, как и без удвоения, потому для них всё равно, на чётных или нечётных они позициях.
алгоритм Луна железно проверяет одиночные ошибки, и это его несомненное достоинство. Остальное уж как повезет.
Предполагаю, что ембоссирование карт не просто так ввели в далекие времена, современный РуНет, судя по результата поискам, вообще не знает зачем оно было сделано...
ну это надо тогда, чтобы они через одну были, а не соседние, а так думаю, что в подавляющем большинстве случаев люди путают соседние цифры
@@ipdom эмбоссирование здесь каким боком? Оно нужно только для получения оттиска карты. Оттиск делался при отсутствии связи с платёжной системой.
А в алгоритме луна и не нужна такая щепитильность до которой ты докопался.
А в 21 веке он и нафиг не нужен, сейчас связь с банком мгновенная, так что всё можно проверять на стороне банка. Прошли те времена когда связь с банком была по 2-3 минуты и когда песенки ПМ3 качались по пол часа.
О, новое видео, Виталий, вы сделали этот день! Спасибо большое!
Что за неграмотность? Как день можно "сделать"?
Супер и на пальцах. Отличная информация. Всегда можно и в жизни использовать. Спасибо Вам, Виталий. 👍
Да там на 2:50 уже "каждую вторую"
Согласен
Спасибо за информацию 😊
Очень интересная тема! Спасибо)
Неплохо. Спасибо. Очень интересно
Интересно, спасибо за ролик!
Поскольку в результате операции "умножить на два и извлечь цифровой корень" 0 превращается в 0, а 9 в 9, алгоритм не сможет распознать перестановку последовательностей цифр 09 и 90. Банки не избегают такой последовательности - у меня была карта, в номере которой она встречалась.
Я посчитал задачку в конце. У меня получилось, что не хватает 9
Спасибо 🙏🏻 очень доступно
Суперское видео, уже встречал этот алгоритм
Спасибо за ёмкий и познавательный ролик, очень помог мне разобраться для web-программирования)
Спасибо Виталий. Очень интересно. У Перельман этого не было😊
Молодец. Просто и понятно.
В штрих-кодах тоже есть алгоритм и контрольная цифра. Возможно там тоже используются алгоритм Луна
Классное видео.
отличный аргумент для любителей "вернуть свои деньги с чужой карты" якобы неправильно переведенные случайно.))
Так он же сказал, что все равно можно ввести не правильный номер если ошибиться на две цифры
Респект и уважуха тебе за этот познавательный ролик!
А своими словами, от себя можешь что либо написать? Вместо интернетовских штампов!
Прекрасный контент
Круто, не знал. Спасибо.
Уау, топ видос, спасибо))
спасибо за видос!
Отличное видео! Жалко,что в школах такое не рассказывают... Математику полюбил лишь только в техникуме ;)
Ага. На 5ом курсе института, когда поставят 5 часов с решением практических, на первый взгляд неразрешимых жизненных задач, которые решаются в два элементарных действия методами высшей математики. Которая благополучно похерена ещё на 2ом курсе просто потому что - да на кой оно вообще мне нужно!..
Зато в школах рассказывают много разной херни. Особенно гуманитарной херни и астрономию отменили.
о, спасибо за инфу, давно интересно было каким образом контрольная цифра в IMEI рассчитывается)
Badcomedian по математике)))
Отличные интересные темы берёте! Хорошая подача информации! Предрекаю этому каналу миллион подписчиков ибо потенциал имеется!
Спасибо, что смотрите!
Прикольно, оказывается моя виза настоящая.
Правильный ответ - 9?
Спасибо
Каждую вторую надо умножать на 2,или через одну, на нечетном месте?
Так нечестно, а где срок и три цифры с обратной стороны???
Прикольно)
Расскажите пож. о Связываемой кольцевой подписи. Да и вообще о алгоритмах тайного голосования. Скажем о защите от вбрасывания голосов организаторами выборов.
Какие вбросы!? Вы что?! Мы всей Россией за Владимира Владимировича единогласно голосуем. Все 114% населения!
@@Lexxl67 ничего удивительного, я из РБ, но голосую всегда за Путина, так что не гони, именно мои голоса и позволяют набирать больше 100%.
@@igor_yanovich Да я и не гоню, сами же написали:" ГОЛОСА"! 🤣
@@Lexxl67 поправка, не 114, а 146
В его время были компуктеры не только механические, алло!
В 1949 уже создали ассемблер, а в 50ти десятых вышли фортран и кобол
Компы были просто не так доступны, но они уже существовали
"50ти десятых?"
В номерах израильских удастоверений личности действительно есть контрольная цифра, но применяется другой алгоритм.
спасибо, пойду найду алгоритм для csv кодов. вперед, к бесплатной еде!
Неправда) например, в алгоритме сбера учитывается тб, где был открыт счет. На самом деле его не знает никто, кроме банка, той самой привязки счета к тб. Было время, когда в начале 2000 выдавали карты с несуществующим московским отделением, где даже по текущему алгоритму получишь неправильную цифру) они попадали в исключения и контрольный номер пересчитывался иначе. При этом ими можно было свободно пользоваться. К чему это все: на стороне сайта нет никакого смысла проверять номер карты, он может выдать неправильный результат и вы не сможете ей расплатиться, она должно проверяться на стороне банка
В моём мире тб - это техбюро, или техника безопасности. Других расшифровок, к сожалению, не знаю...
Математика это есть вся наука, по определению!
Такой подход проверки без запроса подошёл бы и для номеров телефонов и почтовых адресов (видимо, алгоритм пришлось бы адаптировать под текст)
А как устроены контрольные цифры СНИЛС?
Кайф!
шаг 2. (сразу) складываем все "Цифры" удвоенных и нетронутых.
По смыслу получается похоже на код Хэмминга
"Первая цифра - номер платёжной системы"
Это что, получается в мире может быть всего 10 платёжных систем??? Как-то маловато
Получилась цифра 9
Интересное видео!!! Расскажи про энигму
Добрый день, могли бы вы записать видео в котором рассматриваете алгоритм Луна для CVV кода своей карты? 🙏🙏🙏
Класс, благодарю за ролик. А недостающая цифра 9
Пропущенная цифра 5
@@user_name305 def lun(ncard:str) -> bool:
newnum = [int(x) for x in ncard.replace(' ','')]
summ = 0
for i in range(0 , len(newnum)):
if i % 2 == 0:
newnum[i] *= 2
if newnum[i] > 9:
newnum[i] = (newnum[i] % 10) + 1
summ += newnum[i]
return (summ % 10 == 0)
for i in range(0 , 10):
nncard = f'5536 9139 17{i}8 8178'
if lun(nncard):
print(nncard)
Print: 5536 9139 1798 8178
Пропущеная цифра - 9
я вычислил цифру 9
Прикольно. В генерировании номеров СНИЛС тоже какой-то похожий алгоритм есть.
В СНИЛС две контрольные цифры, но я никак не могу понять, зачем там делят на 101?
А вот кто мне скажет, почему в алгоритме вычисления контрольных разрядов СНИЛС применяется остаток от деления на 101, а не на 100? В результате алгоритм не способен выявить все ошибки в одной цифре и все перестановки соседних цифр. Да и правила "Получить остаток от деления на 101; Если получилось 100, контрольное число равно 0" сложнее, чем "Получить остаток от деления на 100". И я сталкивался с тремя разными программами, в которых случай "100 заменить на 00" забывали, в результат некоторые номера СНИЛС программа не пропускала. Правда это было в течение нескольких дней исправлено. Если бы контрольное число равнялось просто остатку от деления на 100 (а не на 101), то могли бы быть выявлены все случаи ошибок в одной цифре и все случаи перестановки двух соседних цифр. Так почему же использована константа 101, а не 100?!
Начало 2:00
Штрихкоды ведь также же верифицируются?
9
Изящное решение увеличивающее прибыль
т.е. просто номер с контрольной суммой,которую удобно сосчитать мозгом.
Догадываюсь, что наследники Луна живут в шоколаде ?
Доброго дня пропущена 9
Было бы интересно узнать о дискретной математике.
Так у этого Луна всё как раз дискретно (нет здесь понятия непрерывности)
а если отвести под контрольную сумму 2 цифры, надёжность повысится? как для этого надо поменять алгоритм?
Две цифры должны тогда дополнять до деления на сто, но их не надо учитывать на первом шаге, это может быть не так удобно - придется держать в голове. Надежность заключается не в контрольной цифре (в данном вопросе уже "контрольном числе") и ее (его) размере, а в алгоритме проверки. Контрольная цифра нужна только для обеспечения последнего шага
видео интересное, но музыка на фоне не подходящая
У СНИЛС тоже предусмотрен алгоритм валидации, но он такой же как у банковских карт или нет?
Семерки нехватает😊
Проще чем бинарный поиск. Особенно, если поиск сделать быстрей чем logn
Ну тогда почитай про хеширование. При "правильной" хеш-функции поиск в таблице проходит в среднем за 1,3 сравнения. Ясно, что быстрее, чем перебор и быстрее дихотомии ... На совсем не быстрых ЭВМ в ряде программ скорость поиска могла вырасти на порядки. Всё можно найти в третьем томе Д.Кнута "Искусство программирования на ЭВМ. Сортировка и поиск"
Интересная тема, но. На 10 результат должен делиться нацело, а не просто делиться.
3 раза повторил как проверять код и ни слова о том, как его генерировать :)
А что там генерировать? С первой цифрой всё ясно - платёжная система. Следующие 14 берём любые, считаем сумму и видим, какая цифра должна быть последней.
Я не понимаю, как это работает для всяких номеров разных. Банки присваивают карте номер с учётом того, чтобы он соответствовал алгоритму или как?
Только последняя цифра определяется. А предыдущие могут быть вообще любые.
@@alekseix257 То есть, у нас есть, например, 8 цирф. Мы первые 7 берем любые, а восьмую (контрольную) подбираем так, чтобы работал алгоритм? Я ведь правильно понимаю?
А как алгоритм Луна используется в номерах вагонов РЖД?
Почему все время он говорит которую цифру а показывает первую третью и тд
Виталий, очень интересное видео
Алгоритм Луна:подтверждение , что возможности человеческого мозга необьятны
Кстати , пропущенная цифра в карте, представленная в видео 9?
Верно!
И зачем я две недели считал? Нужно было просто почитать комменты.
Я думал что количество карт исчисляется миллиардами. А теперь понимаю что иэьхначилбнл меньше
Да, но ведь получается, что у каждого отделения банка по десять миллионов номеров карт. У них клиентов-то столько не бывает.
А что на счет последней контрольной цифры? Или она контрольная не алгоритме луна, а в какой-нибудь другой проверке?
Я тоже сначала не заметил зачем она нужна. Она добавляется в конце, чтобы получилось число которое делится на 10
Как вычислить цифры которые можно использовать банку ?
2:08 Или лыжи не едут, или или я в нечётных числах запутался...
Нечетные по порядку - первая, третья, пятая, седьмая. . . . пятнадцатая....
а что если ввести номер который проходит тест алгоритмом луна, но не является реальным кодом карты
Это есть в видео.
ответ 5536 9139 1798 8178, пропущена цифра 9. всё в сумме даёт 90
Пропущена цифра 9. Верно?
Неа. 4,5!
если он до сих пор используется то получается что кол-во номеров карт становится меньше и собственно вопрос, а сколько всего всевозможных номеров карт мы имеем?
Где-то десять в седьмой степени. Десять миллионов комбинаций. Поскольку цифры с девятой до предпоследней, пятнадцатой, банк может ставить любые в любой комбинации.
И это только для одного конкретного отделения банка для конкретной платёжной системы. А сколько таких отделений...
2:07 - "смотрим на каждую НЕчётную цифру и умножаем её на 2" - а в видео вы множите на "2" ЧЁТНЫЕ ЦИФРЫ!)... если смысл о ПОРЯДКОВОСТИ знаков в 16-значном номере - то тогда нужно было изъясняться корректно...
2:45 - "умножаем каждую ВТОРУЮ ЦИФРУ на 2" - снова некорректно сказано... если первая цифра - 4, то вторая = 8, а в видео - совсем другой расклад))
Про каждую вторую он немного не так выразился, но сказал в общем правильно . А пронечётные-чётные он правильно сказал, смотрите внимательней.
Спасибо, очень интересно, но понятно что сразу возникает такой вопрос. Если цифры на банковской карте связаны между собой такими закономерностями, то это значительно сокращает количество всевозможных номеров карт, которые можно получить при сочетаниях отдельных цифр. За счёт чего же в таком случае получается такое многообразие карт с разными номерами ?
тут скорее ограничение не на 15 цифр, а на последнюю проверочную цифру, которую формируют исходя из остальных.
то есть дано 15 цифр - надо сгенерить еще 1 которая при подстановке в алгоритм будет давать число делящееся на 10
@@alishermatkurbanov9205, именно. Математически первые пятнадцать цифр могут быть любыми во всех возможных комбинациях.
Четко
У меня 234 цифры на картах разных банков одинаковые. Значит ли это, то что вы описываете не верный алгоритм? Или эти карты разных банков выпущены по другому алгоритму?
этот алгоритм не может быть не верным, т.к. иначе ты бы просто не смог воспользоваться своей картой
Математически алгоритму вообще без разницы, где какие цифры. Но последняя цифра однозначно определяется в зависимости от суммы первых пятнадцати цифр, рассчитанной по алгоритму. Если та сумма получится равной, например, 52, то шестнадцатую цифру придётся сделать равной восьми.
возможно в банковской сфере проще стали смотреть на вторую, третью, четвертую...? автор всёже блогер, а не банкир.
2
А как объяснить возможность самому придумать себе номер карты за дополнительную оплату?
Наверно, есть ограничения?
вроде дизайн карты можно придумать, о номерах речи не идёт именно поэтому.
Наличка надежней
все равно непонятно.
Какое количество правильных комбинаций возможно в принципе?
А какое количество пользователей карт? сколько свободных номеров ещё осталось?
16-ричный номер карты явно был выбран после расчетов, так что беспокоится по поводу комбинаций не следует, т.к. большинство карт действуют +- 5 лет, впоследствии банк может просто выпустить карту с тем же номером, но с новым cvv и сроком действия
Посмотрите снова. Первые восемь цифр должны быть строго определённые. Последняя шестнадцатая цифра тоже, она ставится так, чтобы подогнать сумму, чтобы она делилась на десять. А семь цифр, начиная с девятой по пятнадцатую, можно ставить вообще любые. То есть одно отделение банка для одной платёжной системы для одной программы выпуска карт может выпустить ровно десять миллионов карт (десять в седьмой степени). Этого слишком много. Даже если они закончатся, то банк изменит какой-нибудь свой номер программы выпуска карт. Правда, не знаю, что за программы имеются в виду, пенсионная, зарплатная, или ещё какие-то.
@@alekseix257 10 млн карт это мало для одного банка как бы если распределить на 1000 банков то почти впритык к населению земли. если учесть что только у меня 16 карт от десяти банков
А в чем прикол то? Почему 16-ти значные номера устроены так, что после алгоритма они должны давать число, кратное 10? Я правильно понимаю, что цифры номеров карт выбираются тоже по какому-то алгоритму?
16-я цифра подбирается так, чтобы описанные выше манипуляции давали число, кратное 10.
@@BoBaH_BoBaHoB понял, спасибо)
число 9. рассчитал на питоне, самому лень. расскажи, какие языки программирования тебе нравятся?
Интересно. Но как же это работает? Какие-то бусы для папуасов такая математика.
Но соблюдая данный алгоритм всего 1млдр карт может быть выпущено
Есть ещё месяц/год, то-есть ограничение миллиард в месяц.
Для каждого филиала банка.
Так каждую вторую или не четную.
Видео чем смотрел? 1 3 5 и так дале
Для продвижения видео я бы советовала назвать его чуть иначе, типа: "Секрет твоей банковской карты! Алгоритм Луна".
Троллить мошенников пойдет?
Я заметил если заведомо ложные цифры давать они сразу замечают ошибку.
Перестановка, предположу, что основная ошибка при вводен данных с клавиатур )) как раз часто правлю такое в своих сообщениях... надо ChatGPT помучать...
Таки замучив ChatGPT )) бідося аж підвис на хвилину...
1) Опечатки: Під час швидкого набору номера картки можуть виникати опечатки, коли неправильно натискаються клавіші. Наприклад, ви можете натиснути невірну цифру або пропустити одну з цифр.
2) Перестановка цифр: Порядок цифр у номері картки може бути помилково змінений. Наприклад, ви можете поміняти місцями дві цифри в номері.
ну последняя цифра не всегда 8
Я так и не понял: справится ли алгоритм с перестановкой двух соседних цифр? Нельзя ли про это поврорить ЕЩЁ раз? :)
С перестановкой соседних цифр алгоритм справится, именно для этого в самом начале мы умножаем на 2 все цифры через одно. В случае ошибки ввода, на 2 у тебя умножится не та цифра и итоговая сумма будет другой.
@@ShvyrkovAnton кроме одной пары как исключение.