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