平成30年度 秋期 午前 問4
情報に関する理論
aに入る符号
出現頻度の異なる A,B,C,D,E の5文字で構成される通信データを,ハフマン符号化を使って圧縮するために,符号表を作成した。aに入る符号として,適切なものはどれか。
| 文字 | 出現頻度(%) | 符号 |
|---|---|---|
| A | 26 | 00 |
| B | 25 | 01 |
| C | 24 | 10 |
| D | 13 | a |
| E | 12 | 111 |
- ア001
- イ010
- ウ101
- エ110
答えと解説を見る
✓ これが正解エ110
解説
どの符号も、他の符号の先頭に現れない並びを選びます。
区切り記号を使わずに符号をつなげて送るには、ある符号が別の符号の先頭部分と一致しないことが必要です。一致してしまうと、受け取った側がどこまでが一文字ぶんかを決められなくなります。表では 00 と 01 と 10 がすでに使われ、3桁の 111 も割り当て済みです。残った3桁の並びのうち、先頭2桁が 00 や 01 や 10 になるものは使えません。先頭2桁が 11 で始まり、まだ空いているのは 110 だけです。ハフマン符号化では、出現頻度の低い文字ほど長い符号を割り当てます。頻度が近い D と E が、そろって3桁になっている点もこの組み立て方と合っています。頻度の高い3文字が2桁で済んでいるので、全体としては1文字あたりの桁数が2桁台に収まります。正しさは、並べて読み直せるかで確かめられます。
ほかの選択肢はなぜ違うのか
- ア001:先頭の2桁が 00 なので、頻度26パーセントの文字に割り当てた符号と重なります。受け取った側は 00 を読んだ時点でその文字だと決めてしまい、残りの1桁が宙に浮きます。境目を見失う並びは、符号表に載せられません。
- イ010:先頭の2桁が 01 で、頻度25パーセントの文字の符号がそのまま含まれています。つなげて送ると、1文字ぶんとして読んだあとに余りが出てしまいます。読み方が二通りに分かれる表は、圧縮の道具として成り立ちません。
- ウ101:先頭の2桁が 10 なので、頻度24パーセントの文字と読み分けられません。3桁のうち残る1桁を見るには、まず2桁で切らないと決められないという矛盾が生じます。空いている枠は、先頭が 11 で始まる側にしか残っていません。
出典:平成30年度 秋期 基本情報技術者試験 午前 問4
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)