По каналу связи передаются сообщения, содержащие только девять букв:
А, Н, И, П, Е, К, Ц, С, Я.
Для передачи используется двоичный код, удовлетворяющий условию Фано.
Кодовые слова для некоторых букв известны: С — 00, А — 10, П — 110, Е — 1111, К — 11101. Для четырёх оставшихся букв Н, И, Ц, и Я кодовые слова неизвестны.
Какое наименьшее количество двоичных знаков требуется для кодирования слова САНИНСПЕКЦИЯ?
Примечание. Условие Фано означает, что никакое кодовое слово не является началом другого кодового слова. Это обеспечивает возможность однозначной расшифровки закодированных сообщений.
Заметим, что кодовые слова 0 и 1 выбрать нельзя, так как это нарушает условие Фано. Кодовые слова 11, 111 и 1110 использовать нельзя, так как это нарушает условие Фано. Кодовые слова 00, 10, 110, 1111 и 11101 заняты. Свободными остается кодовые слова 01 и 11100.
В слове САНИНСПЕКЦИЯ известны кодовые слова для букв С — 00, А — 10, П — 110, Е — 1111, К — 11101, всего 2+2+2+3+4+5=18. Неизвестны кодовые слова для двух букв Н, двух букв И и букв Ц и Я.
Рассмотрим два варианта назначения кодовых слов:
Вариант 1.
Дадим буквам Н и И, так как они встречается 2 раза, кодовые слова 010 и 011 соответственно. Тогда буквам Я и Ц дадим кодовые слова 111000 и 111001. Тогда длинна слова САНИНСПЕКЦИЯ = 2 + 2 + 3 + 3 + 3 + 2 + 3 + 4 + 5 + 6 + 3 + 6 = 42
Вариант 2.
Дадим букве Н, так как она встречается 2 раза, кодовое слово 010. Тогда буквам И и Я дадим кодовые слова 0110 и 0111. Букве Ц остается кодовое слово 11100.
Тогда длинна слова САНИНСПЕКЦИЯ = 2 + 2 + 3 + 4 + 3 + 2 + 3 + 4 + 5 + 5 + 4 + 4 = 41
Таким образом, наименьшее количество двоичных знаков требуется для кодирования слова САНИНСПЕКЦИЯ равно 41.
Ответ: 41.

