|
|
|
Автоматическая коррекция ошибок при ручном вводе данных
|
|||
|---|---|---|---|
|
#18+
Какие есть коды для автоматической коррекции ошибок в данных, вводимых оператором? Данные -- десятичные числа от 1 до 9 разрядов. Хочется защититься от неправильно введенных цифр, добавленных лишних цифр, пропущенных цифр. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2011, 17:56 |
|
||
|
Автоматическая коррекция ошибок при ручном вводе данных
|
|||
|---|---|---|---|
|
#18+
Один Мужик, То есть? Если допустимы 29468394 и 29648394, а оператор ввёл второе вместо первого, то увы. Проверка на длину введённого текста, естественно, элементарна. Если же вопрос о том, как создать множество кодов, которое суть подмножество слов алфавита [1234567890]* и для которого случайные опечатки в слове с высокой вероятностью порождают слово, не принадлежащее этому множеству, то копать в сторону кодов, обнаруживающих/исправляющих ошибки, видимо. Для примера, можно требовать от кодов фиксированной длины и делимости на 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2011, 18:08 |
|
||
|
Автоматическая коррекция ошибок при ручном вводе данных
|
|||
|---|---|---|---|
|
#18+
Числа я хочу закодировать. Если допустимы 29468394 и 29648394, то их закодированные варианты могу быть к примеру 888888888 и 111111111. Этим я могу управлять произвольно. Количество чисел в принципе ограничено, но они могу использоваться не все. Например, могу встречаться числа от 0 до 1 000 000, но прямо сейчас используются только первые 500 000, остальные будут использованы позже. Код должен гарантировать исправление n опечаток и m вставок/удалений лишних цифр так, чтобы по введенному оператору числу можно было бы однозначно установить, что за число пытались ввести. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2011, 18:16 |
|
||
|
Автоматическая коррекция ошибок при ручном вводе данных
|
|||
|---|---|---|---|
|
#18+
AbstractionЕсли же вопрос о том, как создать множество кодов, которое суть подмножество слов алфавита [1234567890]* и для которого случайные опечатки в слове с высокой вероятностью порождают слово, не принадлежащее этому множеству, то копать в сторону кодов, обнаруживающих/исправляющих ошибки, видимо. Для примера, можно требовать от кодов фиксированной длины и делимости на 11. Все известные мне коды, обнаруживающие/исправляющие ошибки, работают с двоичными числами и исправляют именно ошибки передачи битов. Здесь, мне кажется, задача немножко другая. Хотелось бы просто абстрактных мыслей, куда копать. В принципе несложно для небольших значений длин данных перебрать все возможные варианты соотвествия число--закодированное число и найти код с требуемыми свойствами, но зачем изобретать велосипед, ведь наверняка такие задачи уже когда-то решались. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2011, 18:21 |
|
||
|
Автоматическая коррекция ошибок при ручном вводе данных
|
|||
|---|---|---|---|
|
#18+
Как пример. Пусть нужно закодировать 3 числа, код должен исправлять 1 опечатку или 1 вставку/удаление. Код 1. 0, 111, 122. Код 2. 11, 22, 33. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2011, 18:39 |
|
||
|
Автоматическая коррекция ошибок при ручном вводе данных
|
|||
|---|---|---|---|
|
#18+
Один МужикЧисла я хочу закодировать. Если допустимы 29468394 и 29648394, то их закодированные варианты могу быть к примеру 888888888 и 111111111. Этим я могу управлять произвольно. Количество чисел в принципе ограничено, но они могу использоваться не все. Например, могу встречаться числа от 0 до 1 000 000, но прямо сейчас используются только первые 500 000, остальные будут использованы позже. Код должен гарантировать исправление n опечаток и m вставок/удалений лишних цифр так, чтобы по введенному оператору числу можно было бы однозначно установить, что за число пытались ввести. *Какой-какой матери?* Рекомендую осознать, что требование на исправление 4 произвольных опечаток при 8 значащих цифрах означает, что сам код будет содержать минимум 15 цифр. При требовании исправлять две опечатки - 12. ИМХО, имеет смысл остановиться на кодах фиксированной длины и искать что-нибудь на основе кода Хэмминга. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2011, 18:54 |
|
||
|
Автоматическая коррекция ошибок при ручном вводе данных
|
|||
|---|---|---|---|
|
#18+
Один МужикКак пример. Пусть нужно закодировать 3 числа, код должен исправлять 1 опечатку или 1 вставку/удаление. Код 1. 0, 111, 122. Код 2. 11, 22, 33. Ну да, кратные 11 и фиксированной (кратной 2) длины ошибки обнаруживают (но не исправляют - в коде 2 число 12 неинформативно). Кратные 111 и фиксированной (кратной 3) длины, кажется, будут исправлять. Если нужен практический результат, можно пользоваться принципом делимости (заданных остатков) по простым модулям. (11,13,17,19) уже дают неплохую устойчивость к двум ошибкам; при этом разным наборам остатков можно соотносить разные категории (указываемые до ввода кода), используя в итоге меньше цифр. Что же до исправления произвольных опечаток, то такая постановка мне кажется неразумной. Можно пытаться исправлять одиночные типовые ошибки, типа перемены двух цифр местами - но если человек в состоянии опечататься в двух разных местах, вполне вероятно, что однажды он опечатается и в трёх. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2011, 19:26 |
|
||
|
Автоматическая коррекция ошибок при ручном вводе данных
|
|||
|---|---|---|---|
|
#18+
Abstraction, Спасибо за развернутые ответы. Буду думать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2011, 19:52 |
|
||
|
Автоматическая коррекция ошибок при ручном вводе данных
|
|||
|---|---|---|---|
|
#18+
Еще посоветовали посмотреть здесь http://www.mathnet.ru/php/archive.phtml?wshow=paper&jrnid=ppi&paperid=970&option_lang=rus Фактически это первоначальная задача в чистом виде. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2011, 17:21 |
|
||
|
Автоматическая коррекция ошибок при ручном вводе данных
|
|||
|---|---|---|---|
|
#18+
Один Мужик, авторСтроятся коды над полем GF(q) с длиной n, не превосходящей объема алфавита q, исправляющие однократные вставки, выпадения и замещения букв в словах. Исправлять одну ошибку - коды есть. С n ошибками, насколько знаю, всё хуже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2011, 17:27 |
|
||
|
Автоматическая коррекция ошибок при ручном вводе данных
|
|||
|---|---|---|---|
|
#18+
Abstraction, у этого же автора еще есть статья http://www.mathnet.ru/php/archive.phtml?wshow=paper&jrnid=ppi&paperid=800&option_lang=rus ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2011, 17:31 |
|
||
|
Автоматическая коррекция ошибок при ручном вводе данных
|
|||
|---|---|---|---|
|
#18+
Один МужикКакие есть коды для автоматической коррекции ошибок в данных, вводимых оператором? Данные -- десятичные числа от 1 до 9 разрядов. Хочется защититься от неправильно введенных цифр, добавленных лишних цифр, пропущенных цифр. Для этого ваша система должна включать специальный протокол коррекции ошибок. К примеру, налоговые номера (на территории Украины) состоят из 10 цифр. При этом 9 представляют собственно налоговый код а десятая цифра - контрольная. Она представляет собой скалярное произведение цифр НН и некого контрольного вектора. Плюс еще несколько операций типа остатка от деления для взятия младших разрядов. Ошибиться при вводе такого номера очень сложно т.к. Оператор обычно видит последнюю введённую цифру и будет всегда уведомлён о том что предыдущие 9 цифр содержат ошибку. Это простая и надёжная система IMHO. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2011, 17:41 |
|
||
|
Автоматическая коррекция ошибок при ручном вводе данных
|
|||
|---|---|---|---|
|
#18+
mayton, Сейчас речь идёт о коррекции ошибок. То есть, человек опечатался - система исправила, обратите внимание. Ну, и для предложенного варианта две ошибки могут пройти незамеченными, если иных ограничений на код не налагается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2011, 17:45 |
|
||
|
Автоматическая коррекция ошибок при ручном вводе данных
|
|||
|---|---|---|---|
|
#18+
mayton, Хотелось бы все-таки не просто защититься от ошибки, а исправить ее. Объясню почему. Есть некая информационная система с клиентами, у каждого свой номер. Есть другая замкнутая система (по сути черный ящик), из которой периодически выгружают данные в основную и сопоставляют. Доступа из этой замкнутой системы к основной (да и вообще к чему-либо) нет, единственное, что она позволяет -- ввести какую-то информацию и когда-нибудь передать ее в основую систему. Проверить внутри этой замкнутой системы корректность ввода номера клиента тоже невозможно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2011, 17:49 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=37389776&tid=1342790]: |
0ms |
get settings: |
5ms |
get forum list: |
9ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
153ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
28ms |
get tp. blocked users: |
1ms |
| others: | 205ms |
| total: | 414ms |

| 0 / 0 |
