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