Примечание. Условие Фано означает, что ни одно кодовое слово не является началом другого кодового слова. Коды, удовлетворяющие условию Фано, допускают однозначное декодирование.
Решение.
Для нахождения кодовых слов будем использовать двоичное дерево, в котором от каждого узла отходит две ветви, соответствующие выбору следующей цифры кода. Буквы будем размещать на конечных узлах дерева — листьях. Условие Фано выполняется, поскольку при проходе от корня дерева к букве в середине пути не встречается других букв.
Пример дерева, обеспечивающего минимальную сумму длин всех шести кодов изображено на рисунке.
Суммарная длина такого кода 1 + 2 + 3 + 4 + 5 + 5 = 20.
В - количество стаканчиков на столе
Начало
Ввод данных:
В : = 18
А : = В/3
Действие 1:
В : = В - 3
Действие 2:
А:= А-5
Вывод результатов:
Покажи А
Покажи В
Конец
Протокол выполнения алгоритма:
№ команды Имя переменной Значение переменной
1. В 18
2. А 6
3. В 15
4. А 1
Примечание. Условие Фано означает, что ни одно кодовое слово не является началом другого кодового слова. Коды, удовлетворяющие условию Фано, допускают однозначное декодирование.
Решение.
Для нахождения кодовых слов будем использовать двоичное дерево, в котором от каждого узла отходит две ветви, соответствующие выбору следующей цифры кода. Буквы будем размещать на конечных узлах дерева — листьях. Условие Фано выполняется, поскольку при проходе от корня дерева к букве в середине пути не встречается других букв.
Пример дерева, обеспечивающего минимальную сумму длин всех шести кодов изображено на рисунке.
Суммарная длина такого кода 1 + 2 + 3 + 4 + 5 + 5 = 20.
ответ: 20.
Объяснение: