Решение: Кодирование по условию Фано
По каналу связи передаются сообщения, содержащие только восемь букв: А, Б, В, Г, Д, Е, Ж и З. Для передачи используется двоичный код, удовлетворяющий условию Фано. Кодовые слова для некоторых букв известны. Какое наименьшее количество двоичных знаков требуется для кодирования двух оставшихся букв? В ответе запишите суммарную длину кодовых слов для букв А и Б.
Примечание. Условие Фано означает, что никакое кодовое слово не является началом другого кодового слова. Это обеспечивает возможность однозначной расшифровки закодированных сообщений.
| Буква | Кодовое слово |
|---|---|
| В | 110 |
| Г | 111 |
| Д | 0101 |
| Е | 0100 |
| Ж | 011 |
| З | 101 |
Решение по шагам
4 шагаРассмотрим двоичное дерево кодов. Ветвь $01$ уже занята кодовыми словами $0100$, $0101$ и $011$, ветви $11$ — словами $110$ и $111$, а слово $101$ занимает соответствующую ветвь.
Для одной из оставшихся букв можно выбрать кодовое слово $00$: оно не является началом ни одного известного слова.
Вторую букву можно закодировать словом $100$. Оно не является началом известных слов и не имеет общего префикса, нарушающего условие Фано, с кодом $00$.
Суммарная длина двух кодовых слов минимальна:
$$2+3=5$$Где здесь ошибаются
Выбирать кодовое слово, являющееся началом уже известного кодового слова.
Забывать проверить, что два новых кодовых слова не являются началами друг друга.
Считать количество кодовых слов вместо суммарной длины.