簡體   English   中英

令 X,Y,Z,W 為向量頻率為 $(x,y,z,w)$ 的詞,找到最優編碼

[英]Let X,Y,Z,W be words with vector frequency $(x,y,z,w)$ , Find an optimal code

令 X,Y,Z,W 為向量頻率為 (x,y,z,w) 的詞,使得$x\leq y\leq z\leq w$ .

找到關於 x,y,z,w 的某些要求,使得 W=00,Z=01,Y=10,X=11 是最優代碼。

我的解決方案:

使用霍夫曼編碼,我認為解決方案是需求在此處輸入圖像描述

樹是:

在此處輸入圖像描述

在這種情況下在此處輸入圖像描述 下一棵樹是適當的樹:

在此處輸入圖像描述

因此最佳編碼為 W=0,Z=10,Y=110,X=111。

這兩種情況的最佳代碼是否正確?

謝謝 !

正如此處對答案的評論中所述,特別是您需要 w ≤ x + y 才能使頂部前綴代碼達到最佳狀態。 (符號“z, w ≤ x + y”沒有公認的含義,z 無論如何都無關緊要,因為它與 w、x 和 y 的關系已經給出。)在 w = x + y 的情況下,那么您顯示的兩個前綴代碼都是最佳的,並且正確實施的霍夫曼算法可以產生任何一個。 如果 w > x + y,則第二個代碼是最優的。

另一個沒有給出但應該給出的條件是 x > 0。如果 x = 0 但 y > 0,則根本不會對 x 進行編碼,樹中將有三個符號而不是四個。

您顯示的樹是四個符號僅有的兩種可能的前綴代碼拓撲。

你的解決方案是正確的,你可以證明它如下。 首先,論證通過要求 z 和 w 都不大於 x + y,您可以獲得看起來像建議的最佳代碼; 然后,爭辯說,如果 z 或 w 大於 x + y,則無論如何都無法獲得顯示的代碼。

正如您清楚地指出的那樣,當 z 和 w 不大於 x + y 時,您可以獲得平衡的二叉樹,其中符號的代碼長度為 2。 將標簽分配給邊緣會給出所示的代碼。

類似地,如果 z 或 w 大於 x + y,則 Huffman 將在到達根之前將節點或 x + y 與其他節點組合; 這意味着從根到某些葉子的路徑長度至少為 3,因此通過重新標記邊緣獲得的任何代碼都將具有一些長度至少為 3 的代碼字。 這看起來不像所提供的代碼,其代碼字的長度都是相等的 2。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM