表は,文字A〜Eを符号化したときのビット表記と,それぞれの文字の出現確率を表したものである。
1文字当たりの平均ビット数は幾らになるか。
/文字|ビット表記|出現確率(%)/A|0|50/B|10|30/C|110|10/D|1110|5/E|1111|5
正答2
解説
正解は2です。
この問題は、可変長符号の平均符号長(1文字当たりの平均ビット数)を求める計算です。
平均ビット数は、各文字のビット数にその文字の出現確率を掛け、すべて足し合わせて求めます。
【計算】
Aは1ビットで出現確率0.5なので、1×0.5=0.5です。
Bは2ビットで出現確率0.3なので、2×0.3=0.6です。
Cは3ビットで出現確率0.1なので、3×0.1=0.3です。
Dは4ビットで出現確率0.05なので、4×0.05=0.2です。
Eは4ビットで出現確率0.05なので、4×0.05=0.2です。
合計は0.5+0.6+0.3+0.2+0.2=1.8ビットです。
【選択肢別解説】
1:× 1.6ビットは計算結果と合いません。
正しくは1.8ビットです。
2:○ 各文字のビット数と出現確率の積の総和が1.8ビットになります。
3:× 2.5ビットは計算結果より大きすぎます。
出現確率で重み付けすると1.8ビットです。
4:× 2.8ビットは、5文字のビット数を単純に平均した値(14÷5)です。
出現確率で重み付けしていない点が誤りです。
【ポイント】
出現確率の高い文字に短い符号を割り当てると、平均ビット数を小さくできます。
この考え方はハフマン符号化などのデータ圧縮の基本です。