来自陆林海的问题
电文{A,B,C,D,E,F},出栈概率是0.19,0.0.,0.15,0.22,0.1,0.3造哈夫曼树,给出每个哈夫曼编,算编码平均码长
电文{A,B,C,D,E,F},出栈概率是0.19,0.0.,0.15,0.22,0.1,0.3造哈夫曼树,给出每个哈夫曼编,算编码平均码长
1回答
2020-02-04 18:30
电文{A,B,C,D,E,F},出栈概率是0.19,0.0.,0.15,0.22,0.1,0.3造哈夫曼树,给出每个哈夫曼编,算编码平均码长
电文{A,B,C,D,E,F},出栈概率是0.19,0.0.,0.15,0.22,0.1,0.3造哈夫曼树,给出每个哈夫曼编,算编码平均码长
题目中第二个数字为0.0.应该是输错了,先舍去,只说一下该题目的答题方法,首先从上述概率序列中选取两个最小的值,组成树,树的根权值是该两个序列的和,如上述选取
0.10.15,组成树
0.25
/
0.10.15
然后将0.34放回到序列中,该序列就是0.190.220.250.3
然后重新选取两个最小的点组成树
0.41
/
0.190.22
循环上述方法,直到只有一个结点为值,这样这颗树也就构造完了.
编码就是左子树默认为0右子树默认为1
如哈夫曼树:
54
/
2232
//
c1012b14e18
/
d4a8
其哈夫曼编码:
a:011b:10c:00d:010e:11.
平均码长,上面是a是3位,乘上相关概率得到一个值,所有编码都这样算,然后全部相加之后除以总概率,就是平均码长.