第六周作业—利用哈夫曼编码英文字母表

来源:互联网 发布:知乎俄罗斯模特死亡 编辑:程序博客网 时间:2024/04/29 21:20
[java] view plaincopy在CODE上查看代码片派生到我的代码片
  1. 空格:000  
  2. e:101  
  3.   
  4. t:0011  
  5. a:0101  
  6. o:0111  
  7. i:1000  
  8. n:1001  
  9. s:1111  
  10. h:1101  
  11. r:1100  
  12.   
  13. d:01000  
  14. l:01001  
  15. c:11100  
  16. u:11101  
  17.   
  18. m:001010  
  19. w:001000  
  20. f:001001  
  21. g:011011  
  22. y:011010  
  23. p:011000  
  24. b:011001  
  25.   
  26. v:0010111  
  27.   
  28. k:00101101  
  29.   
  30. j:0010110010  
  31. x:0010110011  
  32. q:0010110000  
  33. z:0010110001 
b.由a可得:(3*2+4*8+5*4+6*7+7+8+10*4)/27≈5.74,即每个字母的编码平均需要6位。

c.熵约为5.74,结果肯定比熵要大,因为在计算熵的时候允许有小数个比特,而实际上每个字符的编码长度都必需为整数。

d.我不认为这就是英文文本压缩的下限。除了字母及其出现的频率,还可以重点考虑单词的前缀,后缀,或者整个单词。
0 0