| a | b | c | d | |
|---|---|---|---|---|
| ア | 0 | 1 | 00 | 11 |
| イ | 0 | 01 | 10 | 11 |
| ウ | 0 | 10 | 110 | 111 |
| エ | 00 | 01 | 10 | 11 |
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
ハフマン符号化の考え方を問う問題で、まず一意に復号できる条件(ある符号が別の符号の接頭辞=語頭になっていないという語頭条件)を満たすものに絞り、その中で出現頻度を重みにした平均ビット長が最短のものを選ぶ。語頭条件を満たすのはウとエだけで、ウの平均ビット長は 0.5×1+0.3×2+0.1×3+0.1×3=1.7ビット、エは全て2ビットなので2.0ビット。高頻度の文字に短い符号を割り当てたウのほうが短くなり、正解はウ。
応用情報技術者試験 令和2年度 午前 の過去問一覧へ戻る・問4