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