第六周作业1——利用哈夫曼编码英文字母表
2014-04-18 21:57
274 查看
P 167 下表给出了英文字母(包括用于分割单词的空格)在某文集中的出现频率
![](http://img.blog.csdn.net/20140418214014921?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxNDA1NDg1OQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
根据字母和空格的概率画出Huffman树
![](http://img.blog.csdn.net/20140418214755281?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxNDA1NDg1OQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
(a)这些字母的最优Huffman编码如下图
![](http://img.blog.csdn.net/20140418215214515?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxNDA1NDg1OQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
(b )每个字母的编码平均需要 (10*4+8+7+6*7+5*4+4*8+3*2)/27=5.74
(c) 该值会比以上的结果还要大,计算熵的时候有小数位,而实际上每个每个字符的编码的长度都是整数
(d) 这不是英文文本压缩的下限,应该考虑到前后缀以及英文词根等。
根据字母和空格的概率画出Huffman树
(a)这些字母的最优Huffman编码如下图
(b )每个字母的编码平均需要 (10*4+8+7+6*7+5*4+4*8+3*2)/27=5.74
(c) 该值会比以上的结果还要大,计算熵的时候有小数位,而实际上每个每个字符的编码的长度都是整数
(d) 这不是英文文本压缩的下限,应该考虑到前后缀以及英文词根等。
相关文章推荐
- C++代码重构——从C global到C++ template
- C++代码重构——从C global到C++ template
- java string类与stringbuffer类
- 长方形
- 概率统计面试题
- (Linux 2.6设备管理机制)kobject和kset
- Foundation框架总结
- jdbc mysql 中文乱码的解决方法
- Git连接oschina管理代码版本
- sysfs文件系统
- 【JavaScript】浅谈JavaScript prototype和__proto__属性
- 数据库设计原则
- 实验10.3_数值显示拓展_dword型数转变为表示十进制数的字符串
- mysql数据库环境的搭建
- 网络设备驱动程序
- 实验10.3_数值显示拓展_dword型数转变为表示十进制数的字符串
- <深入理解计算机系统> CSAPP Tiny web 服务器
- 优秀jquery Mobile教程汇总
- B-tree浅析
- C++实现快速排序