DE-C09|情報Ⅰ 対策問題
出現頻度が偏った4文字を、固定長(2ビットずつ)ではなくハフマン法(平均1.6ビット)で符号化した。1000文字のデータで節約できるビット数はどれか。
解答・解説を見る
正解: 1
正答
1
この問題のポイント
圧縮の効果を差で計算する を問う問題です。「基準(固定長)-圧縮後」という比較の型を身につけます。
解説
圧縮の効果は、圧縮しなかった場合(固定長)を基準に置き、圧縮後との差を取ることで数値化できます。4種類の文字を固定長で区別するには2ビット必要(2²=4)、という前提も式に入っています。
手順どおり計算します。
- 固定長の総ビット数 = 2ビット × 1000文字 = 2000ビット。
- ハフマン法の総ビット数 = 平均1.6ビット × 1000文字 = 1600ビット。
- 節約できたビット数 = 2000 - 1600 = 400ビット。
- 割合で言えば 400 ÷ 2000 = 20%の削減。
「平均1.6ビット」は、出現頻度の高い文字に短い符号を与えた結果、1文字あたり平均でこの長さになる、という期待値的な値です。「平均符号長 × 文字数 = 総ビット数」という計算に慣れておきましょう。
共通テストの圧縮計算は、まさにこの「固定長なら何ビット → 圧縮後は何ビット → 差(または割合)はいくら」という比較形式で出題されます。問われているのが「差」なのか「圧縮後の総量」なのか「削減率」なのかを、最後に確認してから答えを選びましょう。
選択肢の確認
1.○ 2000 - 1600 = 400ビットの節約(20%削減)。
2.× 200ビットは、差の計算や桁の処理を誤った値。
3.× 1600ビットはハフマン法での総ビット数であり、「節約できた量」ではない。
4.× 40ビットは桁を1つ間違えた値。
ここだけは覚えよう
節約量=固定長の総ビット数-圧縮後の総ビット数 — 総ビット数は平均符号長×文字数で求める。