a,b,c,d の 4 文字から成るメッセージを符号化してビット列にする方法として表のア〜エの 4 通りを考えた。この表は a,b,c,d の各 1 文字を符号化するときのビット列を表している。メッセージ中での a,b,c,d の出現頻度は,それぞれ50%,30%,10%,10%であることが分かっている。符号化されたビット列から元のメッセージが一意に復号可能であって,ビット列の長さが最も短くなるものはどれか。
平成28年度 春期 応用情報技術者 問4
テクノロジ系
正解と解説
正解 ウ
どの符号も他の符号の先頭部分にならない(接頭語条件を満たす)ものだけが一意に復号できます。その中で平均符号長が最も短いのはウの1.7ビットです。
一意に復号できるには、どの符号も他の符号の先頭部分と一致しないことが条件です。この条件を満たすのはウとエだけです。1文字当たりの平均ビット長は、ウが0.5×1+0.3×2+0.1×3+0.1×3=1.7ビットです。エはすべて2ビットなので、平均2ビットです。したがって、一意に復号でき、最も短くなるのはウです。ウは出現頻度の高い文字に短い符号を割り当てる、ハフマン符号と同じ考え方です。
ア:「00」はaaともcとも読めます。一意に復号できません。
イ:a(0)がb(01)の先頭と一致します。「010」はacともbaとも読めるため、一意に復号できません。
エ:一意に復号できますが、平均は2ビットです。ウの1.7ビットより長くなります。
出典:平成28年度 春期 応用情報技術者試験 問4
全年度から出題。10問で実力を判定します。登録不要。
出典:平成28年度 春期 応用情報技術者試験 問4(独立行政法人情報処理推進機構)
解説と用語ページは生成 AI が書き、別の生成 AI が確かめています。作り方