メインコンテンツへスキップ
データベーススペシャリスト令和2年度 秋期午前I2

令和2年度 秋期 データベーススペシャリスト 午前I2

難度標準

問2 a, b, c, d の4文字から成るメッセージを符号化してビット列にする方法として表のア~エの4通りを考えた。この表はa, b, c, dの各1文字を符号化するときのビット列を表している。メッセージ中でのa, b, c, dの出現頻度は,それぞれ50%, 30%, 10%, 10%であることが分かっている。符号化されたビット列から元のメッセージが一意に復号可能であって、ビット列の長さが最も短くなるものはどれか。

選択肢

a:0, b:1, c:00, d:11
a:0, b:01, c:10, d:11
a:0, b:10, c:110, d:111
a:00, b:01, c:10, d:11

解説

結論 → 詳細 → 補足 の 3 層構成

展開
結論Layer 1

この問題は、情報理論における効率的なデータ圧縮の概念、特にハフマン符号化の考え方に基づいています。最も短いビット列を実現するためには、出現頻度の高い文字には短いビット列を、出現頻度の低い文字には長いビット列を割り当てる必要があります。これは、平均符号語長を最小化するためです。平均符号語長は、各文字の出現確率と、その文字の符号語長の積の合計で計算されます。

詳細Layer 2

まず、正解の選択肢ウの平均符号語長を計算してみましょう。

a (50%): 0 (長さ1)

b (30%): 10 (長さ2)

c (10%): 110 (長さ3)

d (10%): 111 (長さ3)

平均符号語長 = (0.50 * 1) + (0.30 * 2) + (0.10 * 3) + (0.10 * 3) = 0.50 + 0.60 + 0.30 + 0.30 = 1.70 ビット/文字

補足Layer 3

次に、他の選択肢がなぜ誤りなのかを分析します。

アは、aとbでそれぞれ'0'と'1'という短い符号語を割り当てていますが、cとdにも'00'と'11'という、aやbよりも頻度が低いにも関わらず比較的短い、あるいはaの符号語とprefix(接頭辞)になってしまう誤りがあります。これにより平均符号語長が長くなります。

イは、aに'0'を割り当てていますが、b, c, dの符号語が'01', '10', '11'となっており、aの'0'がbの'01'の接頭辞となってしまうため、一意に復号できません。これは「接頭符号」の条件を満たしていません。

エは、aに'00', bに'01'を割り当てていますが、aとbの出現頻度が高いにも関わらず、より長い符号語が割り当てられています。より頻度の高い文字に短い符号語を割り当てるべきという原則に反しています。

この解説は?
この解説は AI 生成です(詳細)

解説テキストは Google Gemini に IPA 公式の問題文・公式解答を入力して生成しました。 人間によるレビューを行ったものと、未レビューのものが混在します。

AI は事実誤認・選択肢の取り違え・最新法令の反映漏れ等を含む可能性があります。 重要な判断は必ず IPA 公式 PDF または最新の参考書でご確認ください。

解説の検証プロセス・誤り報告フローは 運営透明性レポートで公開しています。

※ AI 生成の解説は誤りを含む可能性があります。重要な判断は IPA 公式資料でご確認ください。

最終更新:

分野「基礎理論」の学習ポイント

この問題の理解を「分野全体の力」に広げるための足がかり

何が問われるか
2進数・論理演算・確率・統計など、IT全般の土台となる数学・離散構造の理解度。
学習の進め方
公式の暗記ではなく、ビット表現や真理値表を「手で書ける」状態を作る。例題を3パターン以上手で解いて感覚化する。
関連キーワード
2進数論理演算シフト演算誤差確率情報量
この分野の問題をもっと解く
AI コパイロット

この問題を AI と深掘りする

用語解説・選択肢分析・類題生成をその場で対話。クイズモードでは解答→解説がゼロ遷移。

クイズモードで開く

共有

X でシェアLINE

ショート動画

関連する問題

基礎理論 の他の問題