問4令和2年度 10月テクノロジ系
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
正解はウ
解説 本サイト独自(IPA公表のものではありません)
ウ ウでは,どの符号も他の符号の先頭部分にならず,左から一意に区切れる。さらに,最頻のaに最短の符号,次に多いbに次に短い符号を割り当て,頻度の低いcとdだけを長くするので,一意に復号できる候補の中で平均のビット列長が最短になる。
- ア 各文字の符号が異なればよいと考える誤りである。cの符号はaを続けた場合と同じになり,dの符号もbを続けた場合と同じになるので,文字の境界を一意に決められない。
- イ aの符号がbの符号の先頭部分でも,残りを見ればよいと考える誤りである。実際には,bの後にaを続けた並びと,aの後にcを続けた並びが同じビット列になり,一意に復号できない。
- エ 全て同じ長さなので一意に区切れるが,出現頻度の差を符号長に反映していない。復号可能かどうかだけを確認し,頻度で重み付けした長さを比較しないと,これを選んでしまう。
この解説は間違っています
この解説は,別のモデルによるレビューを受けています。
出典:令和2年度 10月 応用情報技術者試験 午前 問4