Примечание. Условие Фано означает, что ни одно кодовое слово не является началом другого кодового слова. Коды, удовлетворяющие условию Фано, допускают однозначное декодирование.
Решение.
Для нахождения кодовых слов будем использовать двоичное дерево, в котором от каждого узла отходит две ветви, соответствующие выбору следующей цифры кода. Буквы будем размещать на конечных узлах дерева — листьях. Условие Фано выполняется, поскольку при проходе от корня дерева к букве в середине пути не встречается других букв.
Пример дерева, обеспечивающего минимальную сумму длин всех шести кодов изображено на рисунке.
Суммарная длина такого кода 1 + 2 + 3 + 4 + 5 + 5 = 20.
ответ: 20.
Объяснение:
Создать проект -> Пустой проект C++ -> Исходные файлы правой кнопкой мыши и "Добавить новый" -> называют обычно main.cpp
В этом файле код:
#include <iostream>
using namespace std;
int main(int argc, char* argv[]) {
char *vers = "5.4 Alpha";
char *str;
cout << "[email protected]: ";
cin >> str;
if (str == "version") cout << "Version now: " << vers << endl;
system("PAUSE");
return 0;
}