Для кодирования некоторой последовательности, состоящей из букв К, Л, М, Н, решили...

0 голосов
57 просмотров

Для кодирования некоторой последовательности, состоящей из букв К, Л, М,
Н, решили использовать неравномерный двоичный код, удовлетворяющий
условию Фано. Для буквы Н использовали кодовое слово 0, для буквы К –
кодовое слово 10. Какова наименьшая возможная суммарная длина всех кодов?


Информатика (15 баллов) | 57 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

Условие Фано означает, что никакое кодовое слово не может быть началом другого кодового слова. Поскольку буква Н кодируется нулем, значит, мы не можем кодировать Л и М таким образом, чтобы оно начиналось с нуля. Значит, будем кодировать так, чтобы начиналось с единицы. Допустим, Л - 11. Тогда М невозможно закодировать двумя символами. Значит, будем использовать три. Пусть Л - 110, а М - 111. Следовательно:
Н = 0 (1 символ)
К = 10 (2 символа)
Л = 110 (3 символа)
М = 111 (3 символа)

Наименьшая возможная суммарная всех кодов будет: 1 + 2 + 3 + 3 = 9

(2.3k баллов)