[1] 授業単元:C言語演習
[2] 問題文(含コード&リンク):
ファイルの中に含まれる文字のエントロピーを計算したい。
次のように作りなさい。
(a)文字をgetchar関数で1文字ずつ読み込み、その文字ciの出現頻度f(ci)をカウントする。
(b)総文字数Sと出現頻度f(ci)から出現確立P(ci)を計算する関数を作成しなさい。
P(ci)=1/S*f(ci)…(1)
S=Σf(ci)…(2)
i
(c)出現確立P(ci)からエントロピーHを計算する関数を作成しなさい。
ただし、0log0=0とみなす。
H=-ΣP(ci)log2(←底)P(ci)…(3)
fopenを使った場合は加点する。
ファイル入出力を使わない場合は、リダイレクトを用いて標準入力から読み込む実行例を示すこと。
また、すべての文字の出現頻度が同じであるファイルを作成し、 その時のエントロピーを示すこと。
下記のプログラム参照。

続く