Решение: Минимальное кодирование слова
По каналу связи передаются сообщения, содержащие только буквы из набора: Б, К, Л, О, Н. Для передачи используется двоичный код, удовлетворяющий условию Фано. Кодовые слова для некоторых букв известны: Б — 1001, К — 11. Для трёх оставшихся букв Л, Н и О кодовые слова неизвестны. Какое количество двоичных знаков требуется для кодирования слова КОЛОКОЛ, если известно, что оно закодировано минимально возможным количеством двоичных знаков?
Примечание. Условие Фано означает, что никакое кодовое слово не является началом другого кодового слова. Это обеспечивает возможность однозначной расшифровки закодированных сообщений.
Решение по шагам
3 шагаВ слове КОЛОКОЛ буква О встречается 3 раза, а буквы К и Л — по 2 раза. Код буквы К уже задан и имеет длину 2: $К = 11$.
Подберём кратчайшие возможные кодовые слова для остальных букв так, чтобы ни одно слово не было началом другого. Например: $О = 0$, $Л = 101$, $Н = 1000$. Вместе с заданными кодами $Б = 1001$ и $К = 11$ условие Фано выполняется.
Длина кодирования слова КОЛОКОЛ составляет: три знака для буквы О, два знака для каждой буквы К и три знака для каждой буквы Л.
$$3 \cdot 1 + 2 \cdot 2 + 2 \cdot 3 = 13$$Где здесь ошибаются
Не учитывать, сколько раз каждая буква встречается в слове.
Выбрать кодовые слова, нарушающие условие Фано.
Сложить длины кодов только для различных букв, а не для всех вхождений слова.