1. 哈夫曼編碼。對教材p167中習題5.18,思考並完成問題a-d。
(下表給出了英文本母(包括用於分割單詞的空格)在某文集中的出現頻率。
空格 18.3% | r 4.8% | y 1.6%
e 10.2% | d 3.5% | p 1.6%
t 7.7% | l 3.4% | b 1.3%
a 6.8% | c 2.6% | v 0.9%
o 5.9% | u 2.4% | k 0.6%
i 5.8% | m 2.1% | j 0.2%
n 5.5% | w 1.9% | x 0.2%
s 5.1% | f 1.8% | q 0.1%
h 4.9% | g 1.7% | z 0.1%
(a)這些字母的最優huffman編碼是什麼?
(b)每個字母的編碼平均需要多少位?
(c)假設我們對以上的頻率表計算其熵h= .您認為該值會比以上的計算結果大還是小?為什麼?
(d)您是否認為這就是英文文字壓縮的下線?除了字母及其出現頻率,還有哪些英文本身的特徵需要在文字壓縮中被重點考慮?
字母最優編碼為
a:1000
b:100101
c:01110
d:11110
e:001
f:100100
g:100101
h:0101
j:1111111101
k:11111110
l:10011
m:111110
n:0000
o:1010
p:100111
q:1111111110
r:0110
s:0100
t:1110
u:01111
v:1111110
w:100101
x:1111111101
y:101100
z:1111111111
b字母編碼由計算得需要六位;
c結果比熵要大(約為5.7),因為在計算熵的時候允許有小數個位元,而實際上每個字元的編碼長度都必需為整數.
d我不認為;
除了字母及其出現的頻率,還可以重點考慮某些常見字母的組合。單詞的字首,字尾,等等.
第六周作業 哈夫曼編碼實現
cpp view plain copy include include include malloc的標頭檔案,也可以用malloc.h include using namespace std int num 26 存放個字母出現的次數 char str 50 typedef structhtnod...
第11周專案1 驗證演算法(4)哈夫曼編碼的演算法驗證
問題及 檔名稱 bigice.cbp 作 者 何大冰 完成日期 2016年11月10日 版 本 號 v1.0 問題描述 實現哈夫曼編碼的演算法驗證的演算法驗證,並測試資料。輸入描述 無 程式輸出 測試資料 include include define n 50 葉子結點數 define m 2 n ...
第11周專案1 驗證演算法(4)哈夫曼編碼的演算法驗證
問題及 檔名稱 作 者 路亞麗 完成日期 2016年 11月 21日 版 本 號 v1.0 問題描述 實現哈夫曼編碼的演算法驗證的演算法驗證,並測試資料。輸入描述 無 程式輸出 測試資料 include include define n 50 葉子結點數 define m 2 n 1 樹中結點總數 ...