От Melnikov Ответить на сообщение
К МУРЛО
Дата 01.11.2020 00:55:46 Найти в дереве
Рубрики Армия; Версия для печати

немножко теории

>Собственно, как в ВОВ решали вопрос с неоднозначностью приема? Радист ошибся при приеме цифровых групп, что практически делалось в этом случае? Как проверялась целостность текста и особенно цифровых данных в тексте?

Как во времена ВОВ не скажу ибо не знаю, но ответы про контрольную сумму и не существующие комбинации КМК наиболее близки к истине.
На самом деле эта проблема позднее возникла в компьютерах при считывании информации с носителя.

Например.
Пусть наш алфавит состоит всего из 4 букв.
В двоичном коде стандартно это загоняется так:
001
010
011
100
Однако, предположим, что вдруг один из символов считан с ошибкой (вместо 0 считали 1 или вместо 1 считали 0)
т.е. не всегда однозначно определяет 0 там или 1. Что делать и как восстановить информацию?

Один из принципов основан на переопределении т.е. введении не существующих комбинаций.
Тот же алфавит из 4 букв переопределяем т.е. вводим доп. позиции т.е. вводим не существующие позиции. Итак 4 буквы:
11000
01101
00110
10011

Если возьмем любую из этих букв в такой записи и попробуем изменить в ней только 1 символ на противоположный то... для такой буквы мы получим несколько ложных комбинаций.
Это легко представить геометрически - в виде векторов.
Все ложные комбинации составят облако (или конус) в центре которого будет истинный вектор т.е. из нашего алфавита.

В этом примере алфавит подобран так, что облака ошибок не пересекаются и это дает нам возможность исправлять ошибки при не верно принятой одной позиции (одного бита). Возможно составление алфавита с похдобным свойством но устойчивого к ошибке в двух позициях и т.д.

----- очень грубо, но доступно -----
Есть "блин" в винчестере, но вдруг мы придумываем технологию по которой на ту-же точку на диске мы можем записать 1000 точек, но меньшего размера т.е. увеличиваем плотность и готовы записать в 1000 раз больше на ту же площадь. Проведя кодирование указанным выше способом (например при переходе от 32 битной к 64 битной системе) мы теряем половину точек, но в итоге сохраняем надежность на прежнем уровне, а то что записываем не в 1000 раз больше, а всего в 500...
Ну так все же.... в ПЯТЬСОТ БОЛЬШЕ !
Выигрыш есть.
--------------------------

А если возвращаться к первоначальному вопросу то тут больше подходит другая аналогия - принцип архивирования. Если грубо то одно слово шифруется не по буквам, а целиком т.е. ему присваивается индивидуальная последовательность (но нужно отдельно хранить словарь). В этом случае получаем значительное сокращение в количестве передаваемых знаков.

Если еще более тонко подходить то передаваемая информация крайне ограничена т.е. набор слов крайне мал (чисто теоретически), а цифры можно и отдельно кодировать.

В самом деле... зачем передавать текст такого вида: "героическими усилиями всей команды, затратив кучу средств и времени, нам удалось завербовать главного инженера системы сточных коллекторов" ?
Если легче передать тест вида: "завербован агент Скунс".
А кто он и что он - передать дип. каналами.

Так что... количество слов можно значительно уменьшить... вплоть до словаря Эллочки Людоедки (шутка).