Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.03.22;
Скачать: CL | DM;

Вниз

Посоветуйте алгоритм контрольной цифры.   Найти похожие ветки 

 
Дмитрий С ©   (2012-06-20 23:22) [0]

Есть некое число, которое пользователь должен ввести от 4 до 8 цифр.
Это число должно дополняться 1-2 цифрами исключающих (максимально насколько это возможно) ошибочный ввод.
Как например это делается со EAN-13 штрихкодом.


 
wl ©   (2012-06-20 23:26) [1]

посмотри http://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%B4_%D0%A5%D0%B5%D0%BC%D0%BC%D0%B8%D0%BD%D0%B3%D0%B0
подойдёт?


 
palva ©   (2012-06-20 23:29) [2]

Контрольная цифра служит для проверки правильности написания цифровой части ISBN и вычисляется следующим образом: каждая цифра, входящая в состав ISBN умножается на числовой весовой коэффициент - от 10 до 2. Результаты умножений на весовые коэффициент складываются. Сумма произведений делится на модуль 11 - (постоянный делитель). Из модуля 11 вычитается остаток от деления, который и является контрольной цифрой. Если остатка нет, контрольной цифрой является 0, если остаток 10, он записывается как X. Hапример: Цифровая часть: 505000746 Весовые коэффициенты, расположенные в порядке убывания: 10 9 8 7 6 5 4 3 2 Результаты умножения на весовые коэффициенты: 50 0 40 0 0 0 28 12 12 Сумма произведений: 50 + 40+ 28 + 12 + 12 = 142 Сумма делится на модуль 142: 11 = 12 + остаток 10 Из модуля вычитается остаток 10: 11-10=1 Результат - контрольная цифра 1 Таким образом, полный ISBN будет: 5-05-000746-1


 
Sha ©   (2012-06-20 23:43) [3]

http://ru.wikipedia.org/wiki/Алгоритм_Верхоффа
http://en.wikibooks.org/wiki/Algorithm_Implementation/Checksums/Verhoeff_Algorithm


 
DVM ©   (2012-06-20 23:50) [4]

А обычный CRC8 не подойдет разве?


 
Sha ©   (2012-06-21 00:03) [5]

> DVM

если надо одной десятичной цифрой,
то круче, чем Verhoeff, не получится


 
Дмитрий С ©   (2012-06-21 02:07) [6]


> wl ©   (20.06.12 23:26) [1]

Какой-то слишком сложный, с ходу не поймешь то что нужно или нет.


> Sha ©   (20.06.12 23:43) [3]

А вот это то что надо:) На PHP клево есть, еще на JS надо будет сделать:)


 
Дмитрий С ©   (2012-06-21 02:07) [7]

Спасибо.


 
Inovet ©   (2012-06-21 02:23) [8]

В ПФР так проверяется.

1. Алгоритм  формирования контрольного числа Страхового номера

Проверка контрольного числа Страхового номера проводится только для номеров больше  номера 001–001–998
Контрольное число Страхового номера рассчитывается следующим образом:
• каждая цифра Страхового номера умножается на номер своей позиции (позиции отсчитываются с конца)
• полученные произведения суммируются
• сумма делится на 101
• последние две цифры остатка от деления является Контрольным числом.
Например: Указан страховой номер 112–233–445 95
Проверяем правильность контрольного числа:
 цифры номера 1 1 2 2 3 3 4 4 5
 номер позиции 9 8 7 6 5 4 3 2 1
1х9+1х8+2х7+2х6+3х5+3х4+4х3+4х2+5х1=95
95 / !101! =95
Контрольное число=95 – указано верно
Некоторые частные случаи:
99 / !101! =99
100 / !101! =00
101 / !101! =00
102 / !101! =01


 
ДимкаНа   (2012-06-21 02:43) [9]

Цифры две, а качество хуже. С ходу можно пример с ошибкой в 1 цифре или с перестановкой придумать


 
Германн ©   (2012-06-21 03:36) [10]


> ДимкаНа   (21.06.12 02:43) [9]
>
> Цифры две, а качество хуже. С ходу можно пример с ошибкой
> в 1 цифре или с перестановкой придумать

А ты думал, что "контрольные суммы" гарантируют хоть что-то?


 
Германн ©   (2012-06-21 03:45) [11]

Если это не стандартный алгоритм, то я плюсую к DVM ©   (20.06.12 23:50) [4]
Имхо самый надёжный (но естественно не гарантирующий) алгоритм.


 
Дмитрий С ©   (2012-06-21 11:08) [12]


> А ты думал, что "контрольные суммы" гарантируют хоть что-
> то?

Смотри что гарантирует:
http://ru.wikipedia.org/wiki/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%92%D0%B5%D1%80%D1%85%D0%BE%D1%84%D1%84%D0%B0#.D0.94.D0.BE.D1.81.D1.82.D0.BE.D0.B8.D0.BD.D1.81.D1.82.D0.B2.D0.B0_.D0.B8_.D0 .BD.D0.B5.D0.B4.D0.BE.D1.81.D1.82.D0.B0.D1.82.D0.BA.D0.B8
Плохо что таких данных по CRC8 нет


 
DVM ©   (2012-06-21 11:37) [13]


> Дмитрий С ©   (21.06.12 11:08) [12]


> Плохо что таких данных по CRC8 нет

CRC8 потому что много разных, у каждого свои характеристики и заточены они под разные ошибки:

CRC8ATM
CRC8ITU
CRC8ROHC
CRC8DARC
CRC8ICODE
CRC8J1850
CRC8MAXIM
CRC8WCDMA
CRC8CCITT



Страницы: 1 вся ветка

Текущий архив: 2013.03.22;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.177 c
15-1340919817
guest
2012-06-29 01:43
2013.03.22
Сбой при подключении к прокси-серверу...


15-1329597005
Юрий
2012-02-19 00:30
2013.03.22
С днем рождения ! 19 февраля 2012 воскресенье


15-1342992635
Pavlik
2012-07-23 01:30
2013.03.22
Посоветуйте цену


2-1340433843
Reqyzik
2012-06-23 10:44
2013.03.22
Бяда с XLS


1-1295204106
IPranker
2011-01-16 21:55
2013.03.22
Является ли многоугольник выпуклым?