Решение: Кодовое слово по Фано
По каналу связи передаются шифрованные сообщения, содержащие только десять букв: А, Б, Е, И, К, Л, Р, С, Т, У; для передачи используется неравномерный двоичный код. Для девяти букв используются кодовые слова. Укажите кратчайшее кодовое слово для буквы К, при котором код будет удовлетворять условию Фано. Если таких кодов несколько, укажите код с наименьшим числовым значением.
Примечание. Условие Фано означает, что никакое кодовое слово не является началом другого кодового слова. Это обеспечивает возможность однозначной расшифровки закодированных сообщений.
| Буква | Кодовое слово | Буква | Кодовое слово |
|---|---|---|---|
| А | 00 | Л | 1001 |
| Б | 1000 | Р | 1110 |
| Е | 010 | С | 1010 |
| И | 011 | Т | 1111 |
| К | ? | У | 110 |
Решение по шагам
4 шагаОднозначно декодируемый код по условию Фано не допускает, чтобы одно кодовое слово было началом другого.
Слова, начинающиеся с 0, уже занимают ветви 00, 010 и 011. Слова, начинающиеся с 1, занимают ветви 1000, 1001, 1010, 110, 1110 и 1111.
Кодовое слово длины 1 или 2 невозможно: оно будет началом одного из заданных слов. Кодовое слово длины 3 также невозможно, поскольку ветви 000–011, 100–101, 110 и 111 уже заняты или ведут к заданным словам.
На длине 4 единственный свободный вариант — 1011. Он не является началом ни одного заданного слова, и ни одно заданное слово не является его началом.
Где здесь ошибаются
Выбрать слово, которое является продолжением уже заданного слова, но не проверить условие Фано.
Считать допустимым код 111, хотя он является началом слов 1110 и 1111.
Искать только самое короткое слово и не учитывать, что оно может быть префиксом другого кодового слова.