Чтобы минимизировать количество двоичных символов в системе кодирования Фано, нужно учитывать частоту встречаемости символов в тексте. 1 Чем чаще встречается какой-либо символ, тем короче для него имеет смысл назначить код и тем раньше этот символ надо поместить в дерево. 14
Некоторые принципы построения дерева Фано:
- Каждый узел порождает ровно две ветви. 1 При этом одной ветви (например, левой) сопоставляется бит 0, а другой ветви — бит 1. 1
- На каждом новом этапе ветвления, кроме самого последнего, одна ветвь может быть завершена каким-то символом из тех, для которых генерируются коды, а вторая обязательно должна служить продолжением дерева, иначе его не удастся построить для остальных символов. 1
- Только два последних символа рассматриваемого алфавита можно поместить на концах двух последних ветвей, тем самым «закрыв» и дерево, и генерацию кодов. 1
Для каждого символа код Фано получается последовательной записью всех нулей и единиц по кратчайшему пути от вершины дерева к соответствующему символу. 4