a,b,c,dの4文字からなるメッセージを符号化してビット列にする方法として表のア~エの4通りを考えた。この表はa,b,c,dの各1文字を符号化するときのビット列を表している。メッセージ中でのa,b,c,dの出現頻度は、それぞれ50%,30%,10%,10%であること が分かっている。符号化されたビット列から元のメッセージが一意に復号可能であって、ビット列の長さが最も短くなるものはどれか。
ア | × | 「00」が"aa"なのか"c"なのか判別できないので誤りである。 |
イ | × | 「010」が"ba"なのか"ac"なのか判別できないので誤りである。 |
ウ | ○ | 符号化されたビット列から元のメッセージが一意に復号可能である。 (1×0.5) + (2×0.3) + (3×0.1) + (3×0.1)=1.7⇒ビット列の長さは1.7ビット/文字 |
エ | × | 符号化されたビット列から元のメッセージが一意に復号可能である。 全ての文字に2ビットの符号を割当てているのでビット列の長さは2ビット/文字である。 |
したがって、符号化されたビット列から元のメッセージが一意に復号可能であり、ビット列の長さが一番短いウが正解である。