Задача типа #4: Условие Фано
Условие Фано
По каналу связи передаются шифрованные сообщения, содержащие только десять букв: А, Б, Е, И, К, Л, Р, С, Т, У; для передачи используется неравномерный двоичный код. Для кодирования букв используются кодовые слова, представленные в таблице.
А - 01
Л - 1101
Б - 1100
Р - 1000
Е -
С - 000
И - 001
Т - 101
К - 1111
У - 1001
Укажите кратчайшее кодовое слово для буквы Е, при котором код будет удовлетворять условию Фано. Если таких кодов несколько, укажите код с наименьшим числовым значением.
Примечание. Условие Фано означает, что никакое кодовое слово не является началом другого кодового слова. Это обеспечивает возможность однозначной расшифровки закодированных сообщений.
Алгоритм решения: Построить двоичное ‘дерево’, определить нахождение известных по условию букв, найти положение с учётом минимальной длины кода для каждой оставшейся буквы.
Возможно другое решение.
Посмотреть решение задачи (код на Python) в Telegram боте по ID задачи 104007