平成22年度 秋期 応用情報技術者試験 午前 問2
a,b,c,d の4文字からなるメッセージを符号化してビット列にする方法として表のア~エの4通りを考えた。この表は a,b,c,d の各1文字を符号化するときのビット列を表している。メッセージ中での a,b,c,d の出現頻度は,それぞれ 50%,30%,10%,10%であることが分かっている。符号化されたビット列から元のメッセージが一意に復号可能であって,ビット列の長さが最も短くなるものはどれか。
| a | b | c | d | |
|---|---|---|---|---|
| ア | 0 | 1 | 00 | 11 |
| イ | 0 | 01 | 10 | 11 |
| ウ | 0 | 10 | 110 | 111 |
| エ | 00 | 01 | 10 | 11 |
キーボード:1〜4 で解答 → 次の問題 ← 前の問題
正解と解説を見る
解答する前に解説を開いたので、この問題は「見て解いた」として記録します(正解数には入りません)。
正解:ウ
一意に復号できるかどうかは,ある符号が他の符号の先頭部分(接頭語)になっていないか(瞬時に復号できる符号か)で確認します。
-
ア: a=0,b=1,c=00,d=11
誤り。例えば「00」は「aa」とも「c」とも解釈でき,一意に復号できません。 -
イ: a=0,b=01,c=10,d=11
誤り。例えば「010」は「a+c(0|10)」とも「b+a(01|0)」とも解釈でき,一意に復号できません。 -
ウ: a=0,b=10,c=110,d=111
正しい。どの符号も他の符号の先頭部分になっていないので一意に復号できます。1文字当たりの平均ビット長は 0.5×1+0.3×2+0.1×3+0.1×3=1.7 ビットです。 -
エ: a=00,b=01,c=10,d=11
誤り。一意に復号できますが,平均ビット長は2ビットで,ウ(1.7ビット)より長くなります。
答え
ウ: a=0,b=10,c=110,d=111
出典:平成22年度 秋期 応用情報技術者試験 午前 問2