データファイルには、すべての256文字がほぼ共通であるような8ビット文字列が含まれています。最大文字数は最小文字数の2倍未満です。この場合のハフマン符号化は、通常の8ビット固定長符号を使用するより効率的ではないことを証明する。ハフマン符号化が8ビットシーケンスであることを証明する
-2
A
答えて
3
証明は直接です。仮定するw.l.o.g.文字は周波数の昇順にソートされます。 f(1)とf(2)は最初にf '(1)に結合され、f(2)> = f(1)と2 * f(1)> f f(256)が何かと結合されるまで結合されません。同様に、f(3)とf(4)はf '(2)> = f'(1)> f(256)でf '(2)に結合されます。このように続けて、f(253)とf(254)をf '(127)> =>> = f'(1)> f(256)にまとめる。最後に、f(255)とf(256)は、f '(128)> = f'(127)> = ...> = f '(1)に結合される。 f '(128)< = 2 * f(256)= f'(1)およびf '(128)< = 2 * f(256) (1)< = 2 * f '(1)。 Ergo、f '(128)< 2 * f'(1)は、ハフマンアルゴリズムの第1ラウンドで保持されたのと同じ条件です。
このラウンドでは条件が成立するため、同様にすべてのラウンドを保持すると主張するのは簡単です。ハフマンは、すべてのノードがルート(128,64,32,16,8,4,2,1)に結合されるまで8ラウンドを実行し、その時点でアルゴリズムは終了する。各段階で各ノードがハフマンアルゴリズムによって同じ処理を受けた別のノードに結合されているため、ツリーの各ブランチは同じ長さを持ちます:
これはやや非公式です証拠よりもスケッチのほうが、実際にはより正式なものを書くのに十分なはずです。
関連する問題
- 1. ハフマン符号化のトラバーサル符号化
- 2. ハフマン符号化UML図
- 3. 固定長符号化を生成するハフマン符号
- 4. matlabのハフマン符号化(バイナリ値)
- 5. JPEG「非差動ハフマン符号化」
- 6. 正準ハフマン符号器:符号化ビットストリームの内容
- 7. ハフマン符号化で文字列を解凍するには?
- 8. ハフマン符号化の値を保存するには
- 9. GSM 8ビットデータ符号化
- 10. ハフマン符号化のみを使用するアルゴリズムの例は何ですか?
- 11. ハフマン符号化を繰り返し適用することはできますか?
- 12. 周波数配列からのハフマン符号化(Java)
- 13. ハフマン符号化の入力シーケンスの文字サイズ?
- 14. PHPとMySQLのエラーデータベースには、これは符号化である
- 15. 画像圧縮を考慮すると、ランレングス符号化は常にハフマン符号化より優れていますか?
- 16. アポストロフィを符号化する
- 17. 暗号化証明書
- 18. Javaツリーの枝を走査してビットコードを生成する再帰的メソッドを実装する(ハフマン符号化)
- 19. HTML ::エンティティとアポストロフィを符号化する
- 20. 24ビットのadcデータ圧縮で、ハフマン符号化と同様のものを使用しています
- 21. 私が++であることを証明する方法
- 22. 教科書のハフマン符号化アルゴリズムを使用して、どのファイルの圧縮率が良いですか?
- 23. Jettyと証明書を暗号化する方法
- 24. BaseJSのBase64でPGP暗号化バイナリを符号化する
- 25. ビット演算子で暗号化クラスを符号化する
- 26. は私のプロジェクトのためにハフマン符号
- 27. 8ビット符号なしPCMを8ビット符号付きPCMに変換
- 28. なぜ、ハフマン符号化メッセージを誤って解釈できないのですか?
- 29. 符号化シルベスターシーケンス
- 30. 符号化ポリラインセパレータ
どこにいるのですか?これまでのあなたの考えは何ですか?問題にどのようにアプローチしたのですか? –
実際、私はその質問をあまり理解していませんでした。私は256文字または8だけの周波数を考慮する必要がありますか? –
これは、8ビットのバイトが合計256文字のドメインを表しているということです(今日の世界では時代遅れです)。本質的には、これらのバイトの値の頻度は、多かれ少なかれ均等な分布を有するので、それらを表現するためにハフマンツリーで使用されるビットシーケンス、またはバイト値自体と同じ長さになる。また、ファイルをデコードできるようにツリーを保存する必要があります。ハフマンエンコーディングについてもう少し詳しくお読みください! –