Найдите исполнителя для вашего проекта прямо сейчас!
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.

Добрый день

Любой номер кредитной карты должен проходить проверку контрольной суммы по алгоритму Луна.

Тут подробнее https://ru.wikipedia.org/wiki/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%9B%D1%83%D0%BD%D0%B0

Нужно написать функцию, где входные данные будет верный номер из шестнадцати цифр, функция должна сделать преобразование этого номера в похожий двумя алгоритмами:

1) перестановкой где-либо двух чисел  .. например номер был 4212, стал 4221

2) заменой любого одного числа

3) перебрать все варианты, чтобы на выходе получился очень похожий номер, который имеет замену или по 1му или по 2му алгоритму и проходит контрольную сумму по алгоритму Луна.

Визуально чтобы было почти не отличить, но проходящий по алгоритму Луна.

Преимущество отдаем алгоритму 1. 2й используем если 1й точно не сработал.

Язык не важен, предпочтительно php

5 лет назад
romankie
Роман 
38 летРоссия
6 лет в сервисе
Был
3 года назад