Решение: Кодирование цветов по Фано
Для кодирования растрового рисунка, напечатанного с использованием шести красок, применили неравномерный двоичный код. Для кодирования цветов используют кодовые слова. Укажите кратчайшее кодовое слово для кодирования синего цвета, при котором код удовлетворяет условию Фано. Если таких кодов несколько, укажите код с наименьшим числовым значением.
Примечание. Условие Фано означает, что никакое кодовое слово не является началом другого кодового слова. Это обеспечивает возможность однозначной расшифровки закодированных сообщений.
| Цвет | Кодовое слово |
|---|---|
| Белый | 0 |
| Зелёный | 11111 |
| Красный | 110 |
| Синий | |
| Фиолетовый | 11110 |
| Чёрный | 10 |
Решение по шагам
4 шагаКодовое слово не может начинаться с 0, поскольку 0 уже является кодовым словом. Поэтому оно должно начинаться с 1.
Начало 10 занято кодовым словом чёрного цвета, а начало 110 — кодовым словом красного цвета. Начало 111 также нельзя использовать целиком, поскольку оно является началом кодовых слов 11110 и 11111.
Проверяем продолжения ветви 111. Код 1110 не является началом ни одного из заданных слов и не содержит начало другого кодового слова.
Код 1110 удовлетворяет условию Фано и имеет минимальную длину среди подходящих кодов.
Где здесь ошибаются
Выбрать 111, не заметив, что оно является началом кодовых слов 11110 и 11111.
Выбрать код, начинающийся с 0, хотя 0 уже является отдельным кодовым словом.
Проверить только совпадение кодов, но не проверить условие «одно слово не является началом другого».