免費開始練習
初等考試 115年 [統計] 資料處理大意

第 12 題

給定以下字元出現的頻率:
A: 0.5 B: 0.25 C: 0.15 D: 0.10
使用霍夫曼演算法(Huffman's Algorithm)生成編碼,在樹狀結構中,若規定左分支編碼為 0,右分支編碼為 1,請問字元 B 的二進位編碼為何?
  • A 0
  • B 10
  • C 110
  • D 111

思路引導 VIP

若要設計一種最省空間的分類方式,假設你手中有四堆不同數量的信件,每次只能將最少的兩堆合併起來並標上記號,直到全部合併為一疊為止。那麼,對於那堆數量「第二多」的信件,它會經歷幾次合併過程?又是如何在每一步的選擇中決定它的路徑編號呢?

🤖
AI 詳解 AI 專屬家教

恭喜你準確地掌握了**霍夫曼編碼(Huffman Coding)**的核心邏輯!在資訊理論中,這是一種追求效率的「貪婪演算法(Greedy Algorithm)」,正如我們在精算風險或成本時,總是優先處理權重最大的項目,霍夫曼演算法則是反向操作:從頻率最低的字元開始合併。在這題中,你的判斷完全正確,精準地辨識出字元出現頻率與編碼長度之間的負相關關係。

霍夫曼樹的建構邏輯

我們首先將字元依頻率從小到大排列:D(0.10)、C(0.15)、B(0.25)、A(0.50)。第一步,將頻率最低的 D 與 C 合併,形成一個權重為 $0.10 + 0.15 = 0.25$ 的新節點(記作 CD);接著,將此 CD 節點與頻率次低的 B(0.25) 合併,產生權重為 $0.50$ 的新節點(記作 BCD);最後,將 BCD 與 A(0.50) 合併為根節點。根據題目規定的「左 0 右 1」原則,根節點分出左支 A(0) 與右支 BCD(1);BCD 節點再分出左支 B(10) 與右支 CD(11)。

▼ 還有更多解析內容

🏷️ 相關主題

資料結構與演算法
查看更多「[統計] 資料處理大意」的主題分類考古題

📝 同份考卷的其他題目

查看 115年[統計] 資料處理大意 全題