四つのアルファベットa~dから成るテキストがあり,各アルファベットは2ビットの固定長2進符号で符号化されている。
このテキストにおける各アルファベットの出現確率を調べたところ,表のとおりであった。
各アルファベットの符号を表のような可変長2進符号に変換する場合,符号化されたテキストの,変換前に対する変換後のビット列の長さの比は,およそ幾つか。
アルファベット|a|b|c|d/出現確率(%)|40|30|20|10/可変長2進符号|0|10|110|111
正答4
解説
正解は4です。
固定長2ビットで符号化していたものを、出現確率の高い文字ほど短い符号を割り当てる可変長符号に変えたときの効果を問う問題です。
変換後の1文字当たりの平均ビット長を求め、変換前の2ビットとの比をとります。
【計算】
平均ビット長=Σ(出現確率×符号長)です。
a:0.4×1ビット=0.4ビットです。
b:0.3×2ビット=0.6ビットです。
c:0.2×3ビット=0.6ビットです。
d:0.1×3ビット=0.3ビットです。
合計は0.4+0.6+0.6+0.3=1.9ビットです。
比は1.9÷2=0.95です。
【選択肢別解説】
1:× 0.75は平均ビット長が1.5ビットの場合の値です。
計算結果の1.9ビットとは一致しません。
2:× 0.85は平均ビット長が1.7ビットの場合の値です。
計算結果の1.9ビットとは一致しません。
3:× 0.90は平均ビット長が1.8ビットの場合の値です。
計算結果とは一致しません。
4:○ 平均ビット長は1.9ビットで、2ビットに対する比は0.95です。
【ポイント】
このような可変長符号の代表がハフマン符号です。
平均符号長は「確率×符号長」の合計で求める、という手順を押さえておきましょう。