どこよりも遅い!情報関係基礎 第2問 解説
最終更新日2011年6月1日
第2問第2問はド、レ、ミ、ソの4音を使った音列を0,1を用いたビット列で表現し伝えることについての問題である。曲の送信者と受信者は、音とビット列の共通の変換表を持っているものとする。
問1.
ド | 00 |
レ | 01 |
ミ | 10 |
ソ | 11 |
まず、右の変換表Pを利用する場合を考える。この変換表を使って、音列をビット列に変換すると
“ドレミ”は 00,01,10 ⇒ 000110
“ソミレ”は 11,10,01 ⇒ 2.111001
となる。また、変換したビット列を音列に復元すると
011001 は 01,10,01 ⇒“レミレ”
1010010100 は 10,10,01,01,00 ⇒ 3.“ミミレレド”
となる。
曲A ドレミドレミソミレドレミレ
曲Aをビット列に変換することを考える。曲Aの各音の出現回数は以下の通り
ド…3回、レ…5回、ミ…4回、ソ…1回
変換表を変えて、出現回数の多い音にビット数の短いビット列を割り当てると、全体のビット列の 長さを短縮することができる。
ド | 11 |
レ | 0 |
ミ | 01 |
ソ | 101 |
変換表Qを使い曲Aをビット列に変換すると、ビット列の長さは(音の出現回数)×(音のビット数) の和で求めることができるため、ビット列の長さは
3×2+5×1+4×2+1×3 = 22ビット
変換表Qはビット列から音列を復元する際に問題が生じる。たとえばビット列0101は音列“レソ”、“ミミ”のどちらにも復元できる。また、ビット列は011101
0,11,101 ⇒b.“レドソ”
01,11,01 ⇒8.“ミドミ”
のどちらにも復元できる。
ド | 000 |
レ | 1 |
ミ | 01 |
ソ | 001 |
一方、変換表Rを使うとき、
音列“ミド”は 01、000 ⇒6.01000に変換される。
ビット列001011は 001,01,1⇒a.“ソミレ”
に復元される。
変換表Rを使い、曲Aをビット列に変換するとビット列の長さは
3×3+5×1+4×2+1×3 = 25ビット
となる。問2.
曲B ドドレミドミレソミミ
曲Bをビット列に変換することを考える。この音列は10個の音からなるため、変換表Pを使うとビット列の長さは20ビットになる。この曲の4種類の音の出現回数を調べると以下の通りになる。ド…3回、レ…2回、ミ…4回、ソ…1回
音の出現回数の多い順に並べると ミ、ド、レ、ソとなる。この順にそれぞれビット列 1,01,000,001を割り当てる。曲Bをビット列に変換すると長さは3×2+2×3+4×1+1×3 = 19ビット
となる。曲C ソミレドレミソミレドレミレミソミソ
ド | 001 |
レ | 01 |
ミ | 1 |
ソ | 000 |
曲Cについても同様に音の出現回数の多い順にビット列を割り当てることを考える。曲Cの4種類の音の出現回数を調べると
ド…2回、レ…5回、ミ…6回、ソ…4回
であるため、音の出現回数の多い順に並べるとミ、レ、ソ、ドとなる。この順にそれぞれビット列 1,01,000,001を割り当てると、変換表は右の1.の表になる。2×3+5×2+6×1+4×3 = 34ビット
となり、変換表Pを使った場合と変わらない。問3.
4種類の音を使った曲について、音の出現回数が以下の条件を満たす時を考える。
ド…a回、レ…b回、ミ…c回、ソ…d回 ただし [条件1]a>b>c>d>0 が成り立つ。
この曲について変換表Pと出現回数に対応してビット列を割り当てた変換表R2の2個の変換表を使っていく。
|
|
a×2+b×2+c×2+d×2 = 4. 2(a+b+c+d)ビット
となる。変換表R2を使って、この曲をビット列に変換すると、そのビット列の長さはa×1+b×2+c×3+d×3 = 2. a+2b+3c+3dビット
となる。以上から2つのビット列の長さを比較すると以下のことが分かる。
Pを使うことで短いビット列に変換できる。 ⇔2(a+b+c+d)<a+2b+3c+3d
⇔7.
a−c−d<0
どちらの表でもビット列の長さは変わらない。⇔a−c−d=0
R2を使うことで短いビット列に変換できる。⇔a−c−d>0
[条件1]でレの音の出現回数が全体の20%とする。ド、ミ、ソの音の出現回数の全体の割合をA%,C%,D%と表すと[条件1]より
A>20>C>D>0
が成り立つ。また割合の関係からA+20+C+D=100
が成り立つ。これら2式から
A=80−C−D >80−20−20 =40 >C+D |
数学とクイズでくつろいで<数学の部屋<どこよりも遅い!センター試験数学 解説<情報関係基礎 第2問 解説