1. 程式人生 > >哈夫曼編碼計算問題以及報文解析

哈夫曼編碼計算問題以及報文解析

已知某字串S中共有8種字元,各種字元分別出現2次、1次、4次、5次、7次、3次、4次和9次,對該字串進行哈夫曼,問該字串的編碼至少有多少位?

我們首先構造一個哈夫曼樹: 
這裡寫圖片描述
 
其中編碼位數就是出現 次數×編碼位(bit) 
也就是2×5+1×5+4×3+5×3+7×2+3×4+4×3+9×2=98,所以該字串的編碼長度至少是98位。 
這個就是帶權路徑長度,因為出現的次數就是權重,編碼位數就是節點到根節點的層數。

編碼所佔的位數也就是路徑長度。

還會有一下考法;

葉子節點帶代表字元D={asd;}

讓你寫出{asd;das;ds;ad;}的編碼:這其實就是用01表示。

或者給你說電文是:“101110101010101000010100101”;讓你寫出對用的譯文是什麼?

這也就是發報是滴~滴滴滴。用聲音長短代表0,1,01,10等等,發報越複雜說明指定的越多,希望理解。

 

歡迎留言指正。