Решение: Минимальная сумма длин кодов
По каналу связи передаются сообщения, содержащие только восемь букв: А, Б, В, Г, Д, Е, Ж и З. Для передачи используется двоичный код, удовлетворяющий условию Фано. Кодовые слова для некоторых букв известны.
| Буква | Кодовое слово |
|---|---|
| Д | 00 |
| Е | 011 |
| Ж | 111 |
| З | 010 |
Какое наименьшее количество двоичных знаков требуется для кодирования четырёх оставшихся букв? В ответе запишите суммарную длину кодовых слов для букв А, Б, В, Г.
Примечание. Условие Фано означает, что никакое кодовое слово не является началом другого кодового слова. Это обеспечивает возможность однозначной расшифровки закодированных сообщений.
Решение по шагам
4 шагаРассмотрим двоичное дерево кодов. Код 00 уже занят, поэтому все слова, начинающиеся с 00, использовать нельзя. Аналогично ветвь 01 занята словами 010 и 011.
В свободной ветви 10 можно разместить два кодовых слова одинаковой длины: 100 и 101.
$$l(100) + l(101) = 3 + 3$$В ветви 11 слово 111 уже занято. В свободной части этой ветви можно разместить слова 1100 и 1101.
$$l(1100) + l(1101) = 4 + 4$$Полученные слова не являются началами друг друга или известных кодовых слов, поэтому условие Фано выполнено. Минимальная сумма длин равна:
$$3 + 3 + 4 + 4 = 14$$Где здесь ошибаются
Использовать код, начинающийся с 00, 010, 011 или 111.
Забыть, что новое кодовое слово не должно быть началом другого слова.
Сложить количество кодовых слов вместо их суммарной длины.