Другие языки программирования и технологии

Клод Шеннон. Теорема кодирования

Ребят, решил прочесть книгу Джон Фона Неймана "Вычислительная машина и мозг". Буквально на первых страницах столкнулся с "элементарным" по мнению автора решением передачи информации через избыточность. Решил разобраться в этом поподробнее и застрял. Что бы найти 0 или 1 из всего потока данных подверженных изменению(инверсии), можно сделать отбор(посмотрел в ютубе) в котором принимают участие 3 бита четности на 4 бита данных. Но как они отбирают поврежденные данные, что-то не пойму никак.... И, тем более, как при помощи этого, можно изменять информацию, которая доходит до получателя? Это довольно интересно и охота разобраться в этом, буду благодарен за простой в понимании ответ! Так же не понятна фраза: " Повторение информации - самый простой способ достичь высокой точности в каналах низкой точности" - объясните ее понятнее, пожалуйста!
Книга как раз и призвана сделать непонятное понятным. Надо объяснять книгу, что ли?
Избыточность позволяет сделать передачу устойчивой к потере данных.
Например, самый простой код - XOR всех бит.
Передаём сообщение
 11010111 
к нему добавляем контрольный разряд:
 0 
Допустим, в процессе передачи один бит потерялся.
Если это контрольный разряд - то норм, он и не нужен.
Если это один из битов содержательной части, то вычисляем его на основе остальных бит и контрольного разряда.
Например, пришло
 110_01110 
Мы знаем, что XOR всех бит (включая контрольный) должен быть равен 0. Решаем уравнение, получаем, что значение пропавшего бита равно 1.

В книге принцип тот же, только больше контрольных бит, и алгоритм устойчивее к большим потерям.
Владимир Воронин
Владимир Воронин
54 053
Лучший ответ
Читай про "расстояние Хэмминга". Смысл в том, что двоичные коды, которыми записываются символы алфавита, должны отличаться друг от друга более чем в одном бите.

Например, если в двух любых кодах алфавита различны не менее 3 битов, при искажении одного бита мы всегда сможем восстановить символ: просто берём тот символ, который отличается от переданного не более, чем на 1 бит - такой символ будет единственным.

Если в двух любых кодах различны не менее 5 битов, мы можем восстановить символ, в котором искажено уже 2 бита.

И т.д.

Добавляемые биты чётности как раз и обеспечивают необходимо для восстановления данных отличие кодов.
Влад Никишин
Влад Никишин
64 295