汉字有400多个发音,采用拼音输入法。算上常用标点符号,有400多个符号等待编码。
使用九进制的霍夫曼编码。具体方法是:把待编码的符号按照概率由高到低排序,合并最低的9个符号至一个节点,9个概率相加作为新节点的概率。重复排序、合并的步骤,直到只剩下一个节点。
于是得到一棵编码树,从树根开始编码。概率最高的分支编码为5,以后依次是5 4 6 2 8 1 3 7 9,考虑到5在中间,最容易按到,而4 6 2 8到5的距离较小,1 3 7 9到5的距离较大(相差1.4倍)。
然后,以5-4为例,按了4之后,再按4的距离最小,而1 5 7到4的距离大了一点,接下来是2 8 6 3 9,从而,整体的排序为4 1 5 7 2 8 6 3 9。
以上是九进制的霍夫曼编码,以及考虑了按键距离的方案。这是九键拼音输入法的理论上的最优方案。但是,其缺点也很明显,记忆量大,学习曲线陡峭,劝退好多初学者。
例如,估计逗号的使用频率最高,那么,他应该编码为55。shi,de的频率也不低,估计为两位数。还有许多发音都是三位数编码。基本上来说,点三下输入一个汉字。