4. Кодирование и декодирование информации: #291247
По каналу связи передаются сообщения, содержащие только буквы из набора: А, З, К, Н, Т. Для передачи используется двоичный код, удовлетворяющий условию Фано. Это условие обеспечивает возможность однозначной расшифровки закодированных сообщений. Кодовые слова для некоторых букв известны: К — $1$, Н — $001$. Для трёх оставшихся букв А, З и Т кодовые слова неизвестны.
Какое количество двоичных знаков потребуется для кодирования слова КАНТАТА, если известно, что оно закодировано минимально возможным количеством двоичных знаков?
Код буквы К равен $1$, поэтому все остальные кодовые слова должны начинаться с $0$.
Код $01$ можно использовать: он не является началом кода Н — $001$ и сам не начинается с известного кода. Самое короткое слово выгодно назначить букве А, которая встречается $3$ раза: А — $01$.
После этого для букв Т и З остаётся свободная ветвь $000$. Её необходимо разделить на два кодовых слова: Т — $0000$; З — $0001$.
Полученный код удовлетворяет условию Фано:
| Буква | Кодовое слово |
|---|---|
| К | $1$ |
| А | $01$ |
| Н | $001$ |
| Т | $0000$ |
| З | $0001$ |
В слове КАНТАТА:
- К встречается $1$ раз;
- А — $3$ раза;
- Н — $1$ раз;
- Т — $2$ раза.
Длина сообщения: $1+3\cdot2+3+2\cdot4=18$.