1

ハフマン アルゴリズムでは、ツリーを形成し、各文字を 1 と 0 のツリー値に置き換えます。単純に 2 進数などa=0,b=1,c=10,d=01,e=11を使用して文字に置き換えるのではなく、解凍時に逆を適用して、アルファベットを含む 2 進数。

このような:

character Huffman-code binary-code
a            00            0
b            01            1
c            101           01

等々...

4

1 に答える 1

2

ハフマン コードの重要な条件は、2 つのコードが互いに接頭語ではないということです。それらの番号を付け直すと(これがあなたの提案だと思います)、このプロパティが失われます。

これが壊れる理由を確認するには、出力として "01" を見てください。非ハフマン バージョンでは、"0" の後に "1" (したがって "ab") が続くか、または "01" (したがって "c") のいずれかである可能性があり、どちらかわかりません。

于 2015-04-08T13:23:58.713 に答える