Решение: Минимальная сумма длин кодов
Для кодирования некоторой последовательности, состоящей из букв А, Б, В, Г, Д, Е, решили использовать неравномерный двоичный код, удовлетворяющий условию Фано. Для буквы А использовали кодовое слово 0; для буквы Б — кодовое слово 10. Какова наименьшая возможная сумма длин кодовых слов для букв В, Г, Д, Е?
Примечание. Условие Фано означает, что никакое кодовое слово не является началом другого кодового слова. Это обеспечивает возможность однозначной расшифровки закодированных сообщений.
Решение по шагам
4 шагаКодовое слово 0 занимает всю ветвь, начинающуюся с 0. Кодовое слово 10 занимает ветвь, начинающуюся с 10.
Все остальные кодовые слова должны располагаться в ветви 11, чтобы ни одно из них не начиналось с уже использованных слов и не являлось началом другого слова.
Для четырёх букв можно выбрать четыре листа одинаковой длины: 1100, 1101, 1110 и 1111. Каждое слово имеет длину 4, и условие Фано выполняется.
Сумма длин кодовых слов для букв В, Г, Д, Е равна $4 + 4 + 4 + 4 = 16$.
Где здесь ошибаются
Учитывают длины кодовых слов 0 и 10, хотя требуется сумма только для букв В, Г, Д, Е.
Используют ветви, начинающиеся с 0 или 10, нарушая условие Фано.
Выбирают неравномерные длины кодовых слов, хотя четыре слова длины 4 дают минимальную сумму.