Peter Macharia Ответов: 1

Привет... Могу ли я получить более подробную информацию о методе 3 веса


Ссылка или источник этой информации действительно поможет.

3-Весовой Метод
3-весовые методы также известны как схема маршрутизации электронных денежных переводов, используемая банковской отраслью. Это система, основанная на mod 10, но вместо того, чтобы работать на n как целое число, она работает на точечном произведении (то есть на отдельных цифрах числа n).

Итак, учитывая 8-значный номер маршрута, контрольная цифра c = n· (7, 3, 9, 7, 3, 9, 7, 3), мод 10. Другими словами, Пусть ai-это i-я цифра числа n (от наиболее значимой до наименее значимой). Затем

c = 7a1 + 3a2 + 9a3 + 7a4 + 3a5 + 9a6 + 7a7 + 3a8 mod 10

затем c соединяется с 8-значным маршрутом, образуя 9-значный номер маршрута

Эта схема основана на том факте, что умножение по модулю 10 дает перестановку 10 десятичных цифр, если коэффициент умножения является цифрой множества { 1, 3, 7, 9 }; но только подмножество десятичных цифр, если коэффициент равен 5 или четной цифре. Эта система не может обнаружить соседние транспозиции цифр, которые отличаются на 5.

3-весовой метод не использует простых модульных редукций, поэтому c = 10 - c не требуется для поддержания равенства.

Читатель должен найти следующее контрольное уравнение истинным (где a9-c):

0 = 7a1 + 3a2 + 9a3 + 7a4 + 3a5 + 9a6 + 7a7 + 3a8 + a9 mod 10

3-весовая схема представлена ниже. Как читатель может видеть, он легко обобщается на произвольную длину цифр. Однако, если читателю нужна система для очень длинных наборов данных или двоичных наборов данных, рассмотрите возможность использования контрольных сумм CRC или Alder или контрольной суммы на основе хэша.

Что я уже пробовал:

да

Я пытался, но мне не удалось получить источник этой информации, кроме этого веб-сайта. Изучался ли ранее 3 - весовой метод? Будьте добры указать мне правильное направление, чтобы я мог прочитать об этом больше.

1 Ответов

Рейтинг:
2

MadMyche

Формула относительно проста для вычисления контрольной цифры.

Номер маршрута-это 8-значный номер, а цифра 9-контрольная цифра. В моем примере я буду использовать переменные d1-d9 для представления отдельных цифр

Для вычисления контрольной цифры:

int d9 = 3(d1+d4+d7) + 7(d2+d5+d8) + 1(d3+d6+d9) MOD 10

Чтобы проверить номер:
bool IsValid = (3(d1+d4+d7) + 7(d2+d5+d8) + 1(d3+d6+d9) MOD 10  = 0)

Дополнительная Информация: Транзитный номер маршрута ABA - Википедия[^]


Richard MacCutchan

d6, кажется, отсутствует. Предположительно из последней суммы.

MadMyche

Подтверждено и исправлено. Спасибо. Плохой день для набора текста.