情報理論と符号の基礎
記号A、B、C、Dに、符号語 A = 0、B = 10、C = 110、D = 111 を割り当てた接頭符号がある。ビット列 110100111 を先頭から復号した結果はどれか。
- ACABD
- BCBDA
- CCBAD
答えと解説を見る
正解:C. CBAD
先頭から読み、符号語に一致した時点で区切ります。110 で C、続く 10 で B、0 で A、残りの 111 で D となり、CBAD です。接頭符号なので、このように区切り方が1通りに決まり、区切りの記号を入れなくても復号できます。
- A. CABD を符号化すると 110、0、10、111 で 110010111 となり、与えられたビット列と異なります。
- B. CBDA を符号化すると 110、10、111、0 で 110101110 となり、与えられたビット列と異なります。
- C. 正しい。110、10、0、111 と区切れます。