ファイルのエントロピーの計算方法は?
2023-10-05 16:12:44
質問
ファイルのエントロピーを計算する方法を教えてください。
(あるいは単にバイトの束としましょう)
思いついたのですが、数学的に正しいかどうかわかりません。
私の考えは次のようなものです。
- 256個の整数(すべて0)の配列を作成します。
-
ファイルをトラバースして、その各バイトについて。
配列の対応する位置をインクリメントします。 - 最後に 配列の平均値を計算します。
-
カウンタをゼロで初期化する。
とし、配列の各エントリに対して
そのエントリの差分 をカウンタに追加します。
さて、今私は行き詰っています。すべての結果が 0.0 と 1.0 の間になるような方法でカウンターの結果を投影するにはどうすればよいでしょうか。 どのようにすれば、すべての結果が 0.0 と 1.0 の間になるのでしょうか? しかし、私は確信しています。 というのは矛盾していますね...。
もっとシンプルで良い解決策があるといいのですが。
注意: 私はファイルのコンテンツについて仮定するために、全体が必要です。
(プレーンテキスト、マークアップ、圧縮またはバイナリ、...)
どのように解決するのですか?
<ブロッククオート- 最後に 配列のquot;平均値"を計算します。
- カウンタをゼロで初期化する。 そして、配列の各エントリについて。 エントリの平均値との差をカウンタに追加します。
とともに いくつかの を変更すると、シャノンのエントロピーを得ることができます。
平均をエントロピーに改名。
(float) entropy = 0
for i in the array[256]:Counts do
(float)p = Counts[i] / filesize
if (p > 0) entropy = entropy - p*lg(p) // lgN is the logarithm with base 2
編集します。 ウェスリーが言ったように、エントロピーを8で割って、その範囲に調整する必要があります。 0 . . 1 (あるいは、対数の底である256を使うこともできます)。
関連
-
[解決済み] JavaScript で配列に値が含まれているかどうかを確認するにはどうすればよいですか?
-
[解決済み] 山積みされた靴下を効率よく組み合わせるには?
-
[解決済み] Bashで通常のファイルが存在しないかどうかを判断する方法を教えてください。
-
[解決済み] Git リポジトリで削除されたファイルを検索して復元する方法
-
[解決済み] Pythonでファイルやフォルダを削除する方法は?
-
[解決済み] Microsoft Officeをインストールせずに、C#でExcel(.XLSおよび.XLSX)ファイルを作成するにはどうすればよいですか?
-
[解決済み] ゲーム「2048」の最適なアルゴリズムとは?
-
[解決済み] ファイルの内容からJavaの文字列を作成するにはどうすればよいですか?
-
[解決済み] ファイルを作成し、書き込むにはどうすればよいですか?
-
[解決済み] ファイルに行を書き込む正しい方法?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] T(n) = 2T(n/2) + O(n) からO(nlogn)を得る方法
-
[解決済み] T = {<M> | Mはwを受け入れるときはいつでも$w^R$を受け入れるTMである}とする。Tが決定不可能であることを示せ
-
[解決済み] 整数の絶対値の計算方法
-
[解決済み] アルゴリズム設計マニュアル』の解答はどこにあるのですか?[クローズド]
-
[解決済み] リストの並べ換えをすべて生成するアルゴリズム?
-
[解決済み] 任意の2頂点間の全接続を求めるグラフアルゴリズム
-
[解決済み] クイックソートとマージソートの比較 [重複]。
-
[解決済み] ハングマンの難易度を「易しい」「中くらい」「難しい」に分類するためのアルゴリズム
-
[解決済み] 2つのリンクリストがマージされるかどうかをチェックします。もしそうなら、どこで?
-
[解決済み] リンクリストのソートで最も高速なアルゴリズムは?