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