下表给出了英文字幕(包括用于分割单词的空格)在某文集的出现频率。
空格:18.3% r:4.8% y:1.6%
e:10.2% d:3.5% p:1.6%
t:7.7% l:3.4% b:1.3%
a:6.8% c:2.6% v:0.9%
o:5.9% u:2.4% k:0.6%
i:5.8% m:2.1% j:0.2%
n:5.5% w:1.9% x:0.2%
s:5.1% f:1.8% q:0.1%
h:4.9% g:1.7% z:0.1%
a:由该表可得这些字母的Huffman树为:
并的其Huffman编码为:
空格:111 r:0000 y:100110
e:010 d:10111 p:100101
t:1100 l:10110 b:100100
a:1010 c:00101 v:1101100
o:1000 u:00100 k:11011011
i:0111 m:110111 j:1101101010
n:0110 w:110101 x:1101101011
s:0011 f:110100 q:1101101000
h:0001 g:100111 z:1101101001
b:因为 (3*2+4*8+4*5+6*7+7*1+8*1+10*4)/27≈5.740
所以每个字母的编码平均需要6位。
c:比计算数值大,因为在计算熵的时候,结果基本都会出现小数,而在编码时,位数只能是整数,所以会比计算结果大。
d:我认为不是,还可以考虑英文中固定的前缀和后缀来压缩。