题目中第二个数字为0.0. 应该是输错了,先舍去,只说一下该题目的答题方法,首先从上述概率序列中选取两个最小的值,组成树,树的根权值是该两个序列的和,如上述选取
0.1 0.15,组成树
0.25
/
0.1 0.15
然后将0.34放回到序列中,该序列就是0.19 0.22 0.25 0.3
然后重新选取两个最小的点组成树
0.41
/
0.19 0.22
循环上述方法,直到只有一个结点为值,这样这颗树也就构造完了.
编码就是左子树默认为0 右子树默认为1
如哈夫曼树:
54
/
22 32
/ /
c10 12 b14 e18
/
d4 a8
其哈夫曼编码:
a:011 b:10 c:00 d:010 e:11.
平均码长,上面是a 是 3位,乘上相关概率得到一个值,所有编码都这样算,然后全部相加之后除以总概率,就是平均码长.