過去問解きまくり研究所 ホーム

平成22年度 秋期 午前 問2

基礎理論

ハフマン符号に関する問題

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

答えと解説を見る

✓ これが正解ウa=0 / b=10 / c=110 / d=111

解説

先に一意に読めるかを見て、残った中で平均長を比べます。

この問いには関門が 2 つあります。順番を守らないと落ちる作りなので、先に順番を決めてしまいます。関門の 1 つ目は、符号化されたビット列が一通りに読めるかどうかです。ある文字の符号が別の文字の符号の先頭と同じになっていると、区切り方が 2 通りできてしまい、元のメッセージに戻せません。これを避ける条件を語頭条件と呼びます。関門の 2 つ目が、1 文字あたりの平均ビット数です。出現頻度に符号の長さを掛けて足し合わせ、短いほうを採ります。正解は、出現頻度の高い文字ほど短い符号を割り当てた側で、語頭条件を満たしたうえで 0.5×1 + 0.3×2 + 0.1×3 + 0.1×3 = 1.7 ビットとなります。これはハフマン符号の考え方そのもので、同じ頻度から木を組み立てても 1・2・3・3 ビットという同じ長さになります。平均だけを先に比べると、そもそも復号できない符号を最短として選んでしまいます。

ほかの選択肢はなぜ違うのか

この問題の用語

出典:平成22年度 秋期 応用情報技術者試験 午前 問2

同じ用語が出る問題

この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)