霍夫曼编码的有效性

时间:2018-03-20 10:32:42

标签: encoding huffman-code

编码为
答:0
B:11
C:100
D:101

我可以肯定的是,A的概率最高,其次是B,然后是C和D(因为prob(C)+ prob(D)< prob(B))。

然而,考虑A> B> C> D在概率值方面,或A> B> D> C,我没有得到上面的编码:

--0--A
|
--1----1---B       <- Should actually be zero as left branch should always be zero
    |
    ---0-----0--C  <- First zero should be 1, but it's not.
          |
          ---1--D

它确实满足前缀约束,但有一个反例表明上述编码实际上有效吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

没有任何内容表明哪个分支应为零,哪个分支应为1。您可以提出许多符号长度的编码。 (查找“规范霍夫曼代码”以获得解决此问题的约定。)编码“有效”,因为它是前缀代码,如果符号的概率接近1 / 2,1 / 4,1,它将很好地压缩符号/ 8和1/8。