关于哈夫曼编码试题的计算

来源:百度知道 编辑:UC知道 时间:2024/09/23 07:09:32
假设某符号集X中包含7个符号:(s1,s2,s3,s4,s5,s6,s7),它们各自出现的概率分别为:(0.31,0.22,0.18,0.14,0.1,0.04,0.01)。试求其哈夫曼编码、信息熵、平均码字长度和编码效率。这道题要如何解答?能给出明确的解题过程么???谢谢

太复杂了,楼主一会记得多给我点分!谢谢啦!
先设权w=(31,22,18,14,10,4,1),n=7,则m=13,按照哈夫曼算法可以构造一棵哈夫曼树如下:
100
40 60
22 18 31 29
14 15
10 5
4 1
末端结点为22,18,31,14,10,4,1,你自己把上面的加上线连成一棵二叉树就行,记得左分支标0,右分支标1(为了得出后面的哈夫曼编码HC)
然后需要列出HT初态表和HT终态表,如下:
HT初态表 HT终态表
weight parent lchild rchild weight parent lchild rchild
1 31 0 0 0 31 12 0 0
2 22 0 0 0 22 11 0 0
3 18 0 0 0 18 11 0 0
4 14 0 0 0 14 10 0 0
5 10 0 0 0 10 9 0 0
6 4 0 0 0 4 8 0 0
7 1 0 0 0 1 8 0 0
8 - 0 0 0 5 9 6 7
9 - 0 0 0 15 10 5 8
10 - 0 0 0 29 12 4 9
11 - 0 0 0 40 13 2 3
12 - 0 0 0 60 13 1 10
13 - 0 0 0 100 0 11 12
最后得出哈夫曼编码HC:
1——>10
2——>00
3——>01
4——>110
5——>1110
6——>11110
7——>11111
平均码字长度为(0.31+0.22+0.18)×2+0.14×3+0.1×4
+(0.04+0.01)×5=2.47
编码效率为[(1-0.01)×3+0.01×2]/2.47=1.21
解答完毕!
补充:对于其中的编码效率问题本人有点淡忘,我选择的是用
普通平均