Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];

Вниз

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

 
Дмитрий С ©   (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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.069 c
15-1330374602
Юрий
2012-02-28 00:30
2013.03.22
С днем рождения ! 28 февраля 2012 вторник


15-1336227120
KilkennyCat
2012-05-05 18:12
2013.03.22
TImage - мини-фотошоп


15-1342182880
DevilDevil
2012-07-13 16:34
2013.03.22
OpenMP vs Multithread


2-1330094823
Сергей
2012-02-24 18:47
2013.03.22
Как отменить сообщения компилятора?


2-1329677704
Aleksandra
2012-02-19 22:55
2013.03.22
Поиск ADO





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский