ITパスポート試験 過去問解説

ハフマン符号とは?ITパスポート試験 2012年 (平成24年 秋期) 問72を解説

ITパスポート試験 2012年 (平成24年 秋期) 問72は、ハフマン符号に関する理解を問う問題です。検索から入っても、問題文、選択肢、正解、解説、各選択肢がなぜ違うかをこのページだけで確認できます。

問題文

図に示すように,文字列の各文字を置換表に従って置き換える処理を考える。このような置換えを行った結果が"0110001010"であったとき,置換え前の文字列はどれか。 文字の置換表 置換例: A,B,A,B,C,A,B,A → 0,10,0,10,11,0,10,0 → 最終結果"010010110100"

この問題の出題ポイント

  • ハフマン符号の定義だけでなく、問題文中の条件がどの選択肢に当てはまるかを確認する。
  • テクノロジ系分野では、用語の目的・主体・責任範囲の違いが選択肢で問われやすい。
  • 関連タグ: 情報の表現、符号化、計算問題、図表問題。

選択肢

  1. ABBAABB
  2. ACAAABB正解
  3. ACABB
  4. CAAABB

正解

: ACAAABB

解説

正解はイ(ACAAABB).置換表でA=0,B=10,C=11(プレフィックスコード).「0110001010」を左から順に解析:0=A,1次に1だから11=C,次は0=A,次は0=A,次は0=A,次は10=B,次は10=B.合計でA・C・A・A・A・B・B=ACAAABB(7文字).プレフィックスコード(どの符号も他の符号の先頭にならない)なので一意に復号できる性質を利用する.ハフマン符号の考え方の基本問題で,文字列の長さは「0は1文字,1で始まれば10か11の2文字」で計算する.用語の本質的な定義と典型的な対比語を押さえる重要論点.

なぜ他の選択肢が違うのか

  • ABBAABBは復号結果と一致しない.A=0,B=10で組み立てると0,10,10,0,0,10,10=01010001010だが,設問の0110001010とはビット列が異なる.正しい復号結果はACAAABBで,この組合せは置換結果から導けない別の文字列.

  • イ(正解)

    正解.ACAAABBは置換表に従ってビット列に変換するとA=0,C=11,A=0,A=0,A=0,B=10,B=10で,連結すると0110001010となり設問の結果と完全に一致する.プレフィックスコードの一意復号で導ける正しい元の文字列となる.

  • ACABBの組合せでビット列に変換するとA=0,C=11,A=0,B=10,B=10で連結すると01101010で8ビットしかなく,設問の10ビット(0110001010)に足りない.復号結果として長さも内容も一致しないため不正解の組合せ.

  • CAAABBの組合せでビット列に変換するとC=11,A=0,A=0,A=0,B=10,B=10で連結すると110001010(9ビット)で先頭が1.設問のビット列は0で始まる0110001010のため先頭から異なり,この組合せは復号結果と一致しない.

解き方の整理

ハフマン符号の問題では、選択肢のキーワードだけで判断せず、問題文が示す条件と正解選択肢の説明が一致しているかを見ます。誤答選択肢は、似た用語を混ぜる、主体を入れ替える、目的や範囲を広げすぎる、という形で作られることが多いため、選択肢別解説まで確認しておくと復習効率が上がります。

関連問題

前後の問題

2012年 (平成24年 秋期) の関連する問題

復習を続ける

間違えた問題、苦手タグ、模試履歴を保存して復習する導線を用意しています。広告なしPro、弱点分析、復習リマインダーは段階的に提供予定です。