原住民族考試四等考試-電子工程類科計算機概要104 年第 18 題單選題
在一個以英文字母 A、B、C、D、E 組成的檔案裡,各字母出現的次數分別為:A = 250 次,B = 1000 次,C = 200 次,D = 250 次,E = 500 次。如利用 Huffman 編碼(Huffman encoding),則任一字母最長需要多少個位元(bit)來表示?
D正確答案
Huffman 編碼的核心原則是「出現頻率越低的字元,編碼長度越長」。透過不斷合併頻率最小的兩個節點建構霍夫曼樹,樹的最深層級即為最長位元數。
為什麼答案是 D
出現頻率最低的字母 C(200) 與 A(250) 位於霍夫曼樹的最底層,距離根節點最遠,路徑長度為 4,因此最長需要 4 個位元來表示。
載入中…
完整詳解
Pro · 無限重點 Huffman 編碼的核心原則是「出現頻率越低的字元,編碼長度越長」。透過不斷合併頻率最小的兩個節點建構霍夫曼樹,樹的最深層級即為最長位元數。
頻率排序:200, 250, 250, 500, 1000。依序合併最小兩項:(200+250)=450 → (250+450)=700 → (500+700)=1200 → (1000+1200)=2200。最底層節點經過 4 次合併才到達根節點,故最長需 4 bits。
逐選項分析
A✕
1 個位元(bit)是保留給出現頻率最高的字母(本題為 B,1000次),它的編碼最短,而非最長。
B✕
2 個位元是分配給出現頻率次高的字母(本題為 E,500次)的編碼長度,並非最長。
C✕ 陷阱
若考生在合併節點時未將新生成的節點權重重新排序,可能會畫錯樹狀圖而誤選 3。正確建構下,D 的編碼長度為 3 bits。
D✓ 正確
出現頻率最低的字母 C(200) 與 A(250) 位於霍夫曼樹的最底層,距離根節點最遠,路徑長度為 4,因此最長需要 4 個位元來表示。
本題 Huffman Tree 建構步驟解析
| 步驟 | 目前所有節點與頻率 | 選取合併的最小兩節點 | 新生成節點權重 |
|---|
| 初始 | C:200, A:250, D:250, E:500, B:1000 | C(200) + A(250) | N1: 450 |
| 第一輪後 | D:250, N1:450, E:500, B:1000 | D(250) + N1(450) | N2: 700 |
| 第二輪後 | E:500, N2:700, B:1000 | E(500) + N2(700) | N3: 1200 |
| 第三輪後 | B:1000, N3:1200 | B(1000) + N3(1200) | Root: 2200 |
初學者常誤以為「出現次數越多,需要的位元數越多」。實際上 Huffman 編碼是為了資料壓縮,必須讓「最常出現的字元佔用最少空間」,因此頻率最高的 B 編碼最短,頻率最低的 C 編碼最長。