応用情報技術者 2018年 春期 午前2 問02
問題文
表は、文字A〜 E を符号化したときのビット表記と、それぞれの文字の出現確率を表したものである。1文字当たりの平均ビット数は幾らか。

選択肢
ア:1.6
イ:1.8(正解)
ウ:2.5
エ:2.8
🔒 解説は解答すると表示されます
平均符号長の計算【午前2解説】
正解の理由
可変長符号の1文字当たり平均ビット数(平均符号長)は,各文字の出現確率にその符号長を掛けて全て足し合わせたものになります。各文字の符号長はビット表記の桁数です。与えられた表から桁数と確率を読み取ると,
- A: 1ビット("0")で確率 0.50 →
- B: 2ビット("10")で確率 0.30 →
- C: 3ビット("110")で確率 0.10 →
- D: 4ビット("1110")で確率 0.05 →
- E: 4ビット("1111")で確率 0.05 →
これらを合計すると平均符号長は
となります。したがって正解は選択肢のうちイ(1.8)です。
解法ステップ
- 出現確率をパーセントから小数に直す(例:50% → 0.50)。
- 各文字の符号長をビット表記の桁数で数える("0" → 1ビット、"1110" → 4ビット 等)。
- 各文字について「符号長 × 確率」を計算する。
- それらを全て合計して平均符号長を得る。
具体式:
選択肢別の誤答解説
- ア: 1.6
多くの場合、Aの符号長を誤って0ビットと扱う("0"を「符号がない」と誤認)か、あるいはD/Eの長さを短く数えてしまい合計が小さくなることで生じます。正しくはAは1ビットです。 - イ: 1.8
正解。上記の通り各項を正しく計算して合計した値です。 - ウ: 2.5
確率の単位変換を忘れてパーセント(50, 30, ...)のまま計算してしまう、あるいは符号長を過大に数えるミス(例えばBを3ビットと数える等)で大きな値になることがあります。 - エ: 2.8
全体の桁数を一律で多めに見積もる、あるいは確率を合計して1になっているか確認せずに計算ミスした結果として出る値です。
よくある誤解
- "ビット表記が0だから符号長は0ビット"と誤解する。単一の'0'は1ビットの符号です。
- 確率の単位を変換し忘れる(%をそのまま使う)。必ず100で割って小数に直す。
- 平均符号長とエントロピーを混同する。エントロピーは理論上の下限であり、平均符号長は実際の符号体系に依存する。
補足コラム
この符号はプレフィックス性(どのコード語も他のコード語の接頭辞にならない)を満たしています(例:"0","10","110","1110","1111")。そのためこのままデコード可能であり、ハフマン符号のような最適化手法を使えば平均符号長をエントロピーに近づけられます。参考までにこの分布のエントロピー は
で、今回の平均符号長 はエントロピーに非常に近い値です( の不等式が成り立ちます)。
FAQ
Q. ビット長の数え方がわかりません。
A. ビット表記の文字数をそのまま数えます。例:"110" は3ビット、"0" は1ビットです。
A. ビット表記の文字数をそのまま数えます。例:"110" は3ビット、"0" は1ビットです。
Q. パーセント表記はそのまま計算してよいですか?
A. いいえ。パーセント(%)は 100分の1 なので、小数(0~1)に直して計算してください(50% → 0.50)。
A. いいえ。パーセント(%)は 100分の1 なので、小数(0~1)に直して計算してください(50% → 0.50)。
Q. 別の符号化で平均がもっと小さくなりませんか?
A. 最適なプレフィックス符号(例:ハフマン符号)を使えば平均符号長を最小化できますが、与えられた符号が既に最適に近ければ(今回のように)値はエントロピーに近くなります。
A. 最適なプレフィックス符号(例:ハフマン符号)を使えば平均符号長を最小化できますが、与えられた符号が既に最適に近ければ(今回のように)値はエントロピーに近くなります。
関連キーワード: 平均符号長、可変長符号、プレフィックス符号、ハフマン符号、情報エントロピー、符号化効率

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

