哈夫曼编码理解
2024-01-08 12:34:01
今天学到了哈夫曼编码,简单理解记忆一下。
举个例子:
这里有个文本
aaaabbbcce
其中a出现的概率为0.4,b为0.3,c为0.2,d为0.1
首先我们先定义两个规则:
1.上支路为0,下支路为1
2.概率相等时,合并过的概率在上支路
好,我们开始合并,首先从最小的两个开始
1.d和c合并,值为0.3.因为d(0.1)比c(0.2)小,所以合并时候c在d上面,为上支路。根据我们之前定义的规则上支路为0,下支路为1。c首位编码为0,d首位编码为1
2.cd(0.3)和b(0.3合并)。两个概率相等,根据之前定义的规则概率相等时,合并过的概率在上支路,所以cd(0.3)在上支路,b(0.3)在下支路。现在得出cd的第二位编码为0,b的首位编码为1。
3.bcd(0.6)和a(0.4)合并。bcd为上支路,a为下支路。cd第三位编码为0,b第二位编码为0,a首位编码为1
最终结果
a 1
b 01
c 000
d 001
abdc
0/ \1
bdc(0.6) a(0.4)
0/ \1
dc(0.3) b(0.3)
0/ \1
c(0.2) d(0.1)
文章来源:https://blog.csdn.net/weixin_42094764/article/details/135451632
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!