Восстановление номера кода с пропущенными цифрами
Недавно я читал об исправлении ошибок для собеседования при приеме на работу и написал ряд программ, которые используют циклические коды n-ary BCH (Bose, Chaudhuri, Hocquenghem), и сейчас я написал сценарий, который будет генерировать телефонные номера, как только будет выделена область. код "для данного пользователя (кодирование) и будет декодировать его и исправит до двух ошибок (и обнаружит больше).
Я хотел бы теперь иметь возможность восстановить один из указанных номеров телефонов, если в нем отсутствуют некоторые цифры (два, кажется, выполнимо). После изучения кодов ISBN выясняется, что можно восстановить код ISBN, если были удалены две случайные цифры.
2 ответа
В своем классе декодирования вы утверждаете, что цифра синдрома определяет, есть ли ошибка или нет. Почему бы не заменить две пропущенные цифры на x
а также y
и измените их по всему числу, чтобы найти для них все возможные места, где каждая цифра синдрома равна 0?
Проблема в том, чтобы найти расположение этих ошибок. Как вы сказали, просто вставлять цифры влево, вправо и в центр на самом деле мало что даст, поскольку вернет неправильные коды.
Я не верю, что номера телефонов подтверждают ограничение, затрудняющее правильный выбор неправильного номера.
Кроме того, я полагаю, что номера ISBN имеют только проверку модуля, которая может обнаружить только одну цифру, которая ошибочна (более одного могут взаимно исключать друг друга).
Другими словами, вы просто не можете надежно делать то, что хотите.