日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Huffman(哈夫曼)编码--又称最佳编码(最有效的二进制编码)

發(fā)布時(shí)間:2025/3/19 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Huffman(哈夫曼)编码--又称最佳编码(最有效的二进制编码) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>

在看一道Google筆試題時(shí)用到哈夫曼編碼,于是去搜了下資料。題目如下:

????用二進(jìn)制來(lái)編碼字符串“abcdabaa”,需要能夠根據(jù)編碼,解碼回原來(lái)的字符串,最少需要()長(zhǎng)的二進(jìn)制字符串?

A:12?? ? B:14 ?? ? C:18????? ? D:24

應(yīng)選B

?

?

以下是百度百科對(duì)Huffman編碼原理的解釋:

設(shè)某信源產(chǎn)生有五種符號(hào)u1、u2、u3、u4和u5,對(duì)應(yīng)概率P1=0.4,P2=0.1,P3=P4=0.2,P5=0.1。首先,將符號(hào)按照概率由大到小排隊(duì),如圖所示。

編碼時(shí),從最小概率的兩個(gè)符號(hào)開始,可選其中一個(gè)支 路為0,另一支路為1。這里,我們選上支路為0,下支路為1。再將已編碼的兩支路的概率合并,并重新排隊(duì)。多次重復(fù)使用上述方法直至合并概率歸一時(shí)為止。

從圖(a)和(b)可以看出,兩者雖平均碼長(zhǎng)相等,但同一符號(hào)可以有不同的碼長(zhǎng),即編碼方法并不唯一,其原因是兩支路概率合并后重新排隊(duì)時(shí),可能出現(xiàn)幾個(gè)支路概率相等,造成排隊(duì)方法不唯一。一般,若將新合并后的支路排到等概率的最上支路,將有利于縮短碼長(zhǎng)方差,且編出的碼更接近于等長(zhǎng)碼。這里圖(a)的編碼比(b)好。

圖1 赫夫曼編碼原理

赫夫曼碼的碼字,各符號(hào)的代碼是異前置碼字,即任一碼字不會(huì)是另一碼字的前面部分,這使各碼字可以連在一起傳送,中間不需另加隔離符號(hào),只要傳送時(shí)不出錯(cuò),收端仍可分離各個(gè)碼字,不致混淆。

之所以會(huì)出現(xiàn):任一碼字不會(huì)是另一碼字的前面部分這種情況,是因?yàn)閺纳系较?如圖中的右上方至左下方)的每一次分支,都會(huì)導(dǎo)致兩個(gè)分支的碼字開始不同。就像河流一樣,假設(shè)從頭到尾最長(zhǎng)的那條分支是主流,則每條分流(除主流)絕不會(huì)與主流的前部分重合,因?yàn)榉至鞯淖詈笠粋€(gè)拐向一定與主流不同,這也是出現(xiàn)該分流的原因。

從上可以看出,出現(xiàn)頻率最多的字符的碼字是最短的。這就使得一個(gè)字符串編碼后的總碼字更短,所以是最佳編碼(當(dāng)需要編碼的是圖像視頻等時(shí),應(yīng)該是按各像素出現(xiàn)頻率等要素來(lái)編碼)。

?

轉(zhuǎn)載于:https://my.oschina.net/henryking/blog/690821

總結(jié)

以上是生活随笔為你收集整理的Huffman(哈夫曼)编码--又称最佳编码(最有效的二进制编码)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。