powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Автоматическая коррекция ошибок при ручном вводе данных
14 сообщений из 14, страница 1 из 1
Автоматическая коррекция ошибок при ручном вводе данных
    #37387731
Один Мужик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Какие есть коды для автоматической коррекции ошибок в данных, вводимых оператором? Данные -- десятичные числа от 1 до 9 разрядов. Хочется защититься от неправильно введенных цифр, добавленных лишних цифр, пропущенных цифр.
...
Рейтинг: 0 / 0
Автоматическая коррекция ошибок при ручном вводе данных
    #37387754
Abstraction
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Один Мужик,

То есть? Если допустимы 29468394 и 29648394, а оператор ввёл второе вместо первого, то увы. Проверка на длину введённого текста, естественно, элементарна.
Если же вопрос о том, как создать множество кодов, которое суть подмножество слов алфавита [1234567890]* и для которого случайные опечатки в слове с высокой вероятностью порождают слово, не принадлежащее этому множеству, то копать в сторону кодов, обнаруживающих/исправляющих ошибки, видимо.

Для примера, можно требовать от кодов фиксированной длины и делимости на 11.
...
Рейтинг: 0 / 0
Автоматическая коррекция ошибок при ручном вводе данных
    #37387770
Один Мужик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Числа я хочу закодировать. Если допустимы 29468394 и 29648394, то их закодированные варианты могу быть к примеру 888888888 и 111111111. Этим я могу управлять произвольно. Количество чисел в принципе ограничено, но они могу использоваться не все. Например, могу встречаться числа от 0 до 1 000 000, но прямо сейчас используются только первые 500 000, остальные будут использованы позже. Код должен гарантировать исправление n опечаток и m вставок/удалений лишних цифр так, чтобы по введенному оператору числу можно было бы однозначно установить, что за число пытались ввести.
...
Рейтинг: 0 / 0
Автоматическая коррекция ошибок при ручном вводе данных
    #37387781
Один Мужик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AbstractionЕсли же вопрос о том, как создать множество кодов, которое суть подмножество слов алфавита [1234567890]* и для которого случайные опечатки в слове с высокой вероятностью порождают слово, не принадлежащее этому множеству, то копать в сторону кодов, обнаруживающих/исправляющих ошибки, видимо.

Для примера, можно требовать от кодов фиксированной длины и делимости на 11.

Все известные мне коды, обнаруживающие/исправляющие ошибки, работают с двоичными числами и исправляют именно ошибки передачи битов. Здесь, мне кажется, задача немножко другая. Хотелось бы просто абстрактных мыслей, куда копать. В принципе несложно для небольших значений длин данных перебрать все возможные варианты соотвествия число--закодированное число и найти код с требуемыми свойствами, но зачем изобретать велосипед, ведь наверняка такие задачи уже когда-то решались.
...
Рейтинг: 0 / 0
Автоматическая коррекция ошибок при ручном вводе данных
    #37387802
Один Мужик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как пример. Пусть нужно закодировать 3 числа, код должен исправлять 1 опечатку или 1 вставку/удаление.
Код 1. 0, 111, 122.
Код 2. 11, 22, 33.
...
Рейтинг: 0 / 0
Автоматическая коррекция ошибок при ручном вводе данных
    #37387817
Abstraction
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Один МужикЧисла я хочу закодировать. Если допустимы 29468394 и 29648394, то их закодированные варианты могу быть к примеру 888888888 и 111111111. Этим я могу управлять произвольно. Количество чисел в принципе ограничено, но они могу использоваться не все. Например, могу встречаться числа от 0 до 1 000 000, но прямо сейчас используются только первые 500 000, остальные будут использованы позже. Код должен гарантировать исправление n опечаток и m вставок/удалений лишних цифр так, чтобы по введенному оператору числу можно было бы однозначно установить, что за число пытались ввести.
*Какой-какой матери?*

Рекомендую осознать, что требование на исправление 4 произвольных опечаток при 8 значащих цифрах означает, что сам код будет содержать минимум 15 цифр. При требовании исправлять две опечатки - 12.
ИМХО, имеет смысл остановиться на кодах фиксированной длины и искать что-нибудь на основе кода Хэмминга.
...
Рейтинг: 0 / 0
Автоматическая коррекция ошибок при ручном вводе данных
    #37387847
Abstraction
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Один МужикКак пример. Пусть нужно закодировать 3 числа, код должен исправлять 1 опечатку или 1 вставку/удаление.
Код 1. 0, 111, 122.
Код 2. 11, 22, 33.
Ну да, кратные 11 и фиксированной (кратной 2) длины ошибки обнаруживают (но не исправляют - в коде 2 число 12 неинформативно). Кратные 111 и фиксированной (кратной 3) длины, кажется, будут исправлять.

Если нужен практический результат, можно пользоваться принципом делимости (заданных остатков) по простым модулям. (11,13,17,19) уже дают неплохую устойчивость к двум ошибкам; при этом разным наборам остатков можно соотносить разные категории (указываемые до ввода кода), используя в итоге меньше цифр.
Что же до исправления произвольных опечаток, то такая постановка мне кажется неразумной. Можно пытаться исправлять одиночные типовые ошибки, типа перемены двух цифр местами - но если человек в состоянии опечататься в двух разных местах, вполне вероятно, что однажды он опечатается и в трёх.
...
Рейтинг: 0 / 0
Автоматическая коррекция ошибок при ручном вводе данных
    #37387867
Один Мужик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Abstraction,

Спасибо за развернутые ответы. Буду думать.
...
Рейтинг: 0 / 0
Автоматическая коррекция ошибок при ручном вводе данных
    #37389749
Один Мужик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Еще посоветовали посмотреть здесь
http://www.mathnet.ru/php/archive.phtml?wshow=paper&jrnid=ppi&paperid=970&option_lang=rus

Фактически это первоначальная задача в чистом виде.
...
Рейтинг: 0 / 0
Автоматическая коррекция ошибок при ручном вводе данных
    #37389762
Abstraction
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Один Мужик,

авторСтроятся коды над полем GF(q) с длиной n, не превосходящей объема алфавита q, исправляющие однократные вставки, выпадения и замещения букв в словах.
Исправлять одну ошибку - коды есть. С n ошибками, насколько знаю, всё хуже.
...
Рейтинг: 0 / 0
Автоматическая коррекция ошибок при ручном вводе данных
    #37389776
Один Мужик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Abstraction,

у этого же автора еще есть статья
http://www.mathnet.ru/php/archive.phtml?wshow=paper&jrnid=ppi&paperid=800&option_lang=rus
...
Рейтинг: 0 / 0
Автоматическая коррекция ошибок при ручном вводе данных
    #37389798
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Один МужикКакие есть коды для автоматической коррекции ошибок в данных, вводимых оператором? Данные -- десятичные числа от 1 до 9 разрядов. Хочется защититься от неправильно введенных цифр, добавленных лишних цифр, пропущенных цифр.
Для этого ваша система должна включать специальный протокол коррекции ошибок. К примеру,
налоговые номера (на территории Украины) состоят из 10 цифр. При этом 9 представляют
собственно налоговый код а десятая цифра - контрольная. Она представляет собой скалярное
произведение цифр НН и некого контрольного вектора. Плюс еще несколько операций типа
остатка от деления для взятия младших разрядов. Ошибиться при вводе такого номера
очень сложно т.к. Оператор обычно видит последнюю введённую цифру и будет
всегда уведомлён о том что предыдущие 9 цифр содержат ошибку. Это простая
и надёжная система IMHO.
...
Рейтинг: 0 / 0
Автоматическая коррекция ошибок при ручном вводе данных
    #37389804
Abstraction
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

Сейчас речь идёт о коррекции ошибок. То есть, человек опечатался - система исправила, обратите внимание. Ну, и для предложенного варианта две ошибки могут пройти незамеченными, если иных ограничений на код не налагается.
...
Рейтинг: 0 / 0
Автоматическая коррекция ошибок при ручном вводе данных
    #37389811
Один Мужик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton,

Хотелось бы все-таки не просто защититься от ошибки, а исправить ее. Объясню почему.
Есть некая информационная система с клиентами, у каждого свой номер. Есть другая замкнутая система (по сути черный ящик), из которой периодически выгружают данные в основную и сопоставляют. Доступа из этой замкнутой системы к основной (да и вообще к чему-либо) нет, единственное, что она позволяет -- ввести какую-то информацию и когда-нибудь передать ее в основую систему. Проверить внутри этой замкнутой системы корректность ввода номера клиента тоже невозможно.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Автоматическая коррекция ошибок при ручном вводе данных
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]