科目学習書●メディアテクノロジー論

 ×○
+×○
=○×




|

http://www.infonet.co.jp/apt/March/syllabus/MedTech/number.html


今回の迷信
"アナログは人間的"
???


 この単元では、わたしたちがいつも数と呼んでいるものがコンピュータで取り扱えるようにどう表現されているかについて学習する。
 ビデオの単元ではMPEGを、サウンドの単元ではPCMを学習した。これらのメディアは、対象をたくさんの数量から組み立てられている構造として記録/転送するように作られていた。けれど、そのもとになっている個々の数量が、どうやって表現されているかまでは考えなかった。そのギャップをこの単元では埋めていこう。




数 記数 数字


 数を書き表したものを記数という。記数に使う文字のうち、数を書き表すためだけに使う専用の文字を数字(digit)という。
 数と記数(または数字)は、よく似ているが全く別のものだから、きちんと区別しなければいけない。この二つを混同してしまうと、数について学習することはできない。数と記数の違いについてきちんと理解しておきなさい(資料[数 記数 数字])。
 (number)は、番号や数量などを表わす値で、それはいろんな字を使って表現することもできるし、この単元で学習するように、ビット列で表現することもできる。数を表現するのに使われる文字は、文化によっていろいろだが、多くの場合、ふつうの文章に使うのとは違う専用の文字が使われることが多い。この文字を数字という。つまり、数は内容で、数字はそれを表現する道具(の一部)と言える(資料[数 記数 数字])。

 数字と数を混同しないようにするために、この単元では、数字(やそのストリング)はコーテーションで括って("2")書き表し、数は裸のまま(2)で書き表して区別する。

 多くの数は、複数の数字を組み合わせることによって書き表せる。この組み合わせ方の規則を記数法という。日本でふつうに使われているのは、インド式記数法(アラビア式記数法と呼ばれることが多いが間違い)で、ほかに漢字記数法も使われている。
 記数法は文化によって異なっている。できれば、海外のほかの文化の中で使われている記数法や、今では使われていない記数法(たとえば下記の資料)についても学習してみるといい。

[古代エジプトの記数法]
[バビロニアの記数法]
[古代ギリシアの記数法]
[古代ローマの記数法]
[マヤの記数法]
[現代アラブ世界の記数法]


オプション
数のいろいろな意味


 数はいろんな使われ方をしている。だから、実は、数にもまたさらにいろんな種類がある。中には、数とは考えない方がいいような使われ方もある。これらを区別しないで使ったために混乱が起こることも多い。数のいろいろな使われ方について考え直してみよう(資料[数は一つではない])。


数の表現
[0, 1)


 いろいろな変動を表す数量は、[0, 1)の範囲(▽図)の数として取り扱えることが多い。



 "[0, 1)"は数の範囲を書き表わす形式で、左が最小値、右が最大値を表す。"["や"]" はその数も範囲に含むことを、"("や")"は含めないことを表す。
 したがって、"[0, 1)"は0以上1未満の範囲を意味する。

 もしあまり正確でなくてもいいのなら、範囲を真ん中の1/2で切って、そこよりも小さい側の数なら×を、大きい側の数なら○を符号として割り当てればいい(▽図左)。
 しかし、これでは0も1/3も符号が同じ(×)になってしまって区別がつかない。そこで、それぞれの側をさらに真ん中(小さい側は1/4、大きい側は3/4)で切って、その(それぞれの)小さい側(×)か大きい側(○)かを右隣りの桁として追加すればいい(同その右)。これを何回か繰り返せば、かなり正確に数を区別して表現することができる。こうして0以上1未満の数に符号を割り当てる手法を段階的等分法という。



[0, 1)の数の符号化(左)と復号

 [0, 1)の数の符号化と復号を(段階的等分法で)実際にやってみよう。特別な物差し(▽図)を使えば簡単に実行できる。



段階的等分法の物差し

 0以上1未満の数を一つ決めて、それを表現する4桁のビット列を割り出してみなさい。それができたら、逆にそれが意味する数の範囲を割り出してみなさい。

 段階的等分法で割り当てられた符号には、左の端から順に、一部の桁を必要なだけ調べさえすれば、全部のビットを調べなくても、だいたいの意味が分かるという長所がある。

 JFIFなどのスチルを表現する形式の多くは、色の成分の大きさをそれぞれ段階的等分法で符号化して並べたものを基本にしている。また、ピデオやオーディオの形式でも同じような手法が使われている。


オプション
数の表現
[-1, 1)の数


 負の数を含む、-1以上1未満の範囲の数を記録/通信しなければならないことも多い。この場合も、0以上1未満の場合と同じように、範囲を次々に半分に分けながら、その数が小さい側(×)にあるか大きい側(○)にあるかの判定の列としてビット列の符号を割り当てることができる。この場合は、左端の桁が正(0も含む)か負かの違いを表す。
 0以上1未満の場合と-1以上1未満の場合とでは、同じビット列が全く違う数を意味することになる。したがって、(たとえば通信の場合だと)、送り出す側と受け取る側とで、どっちの符号系を使うのかを、別の手段によって打ち合せておく必要がある。


デジタル アナログ


 ビット列で数を表現するのは、(数直線の中での)数の位置についての説明(ここでビット列を使っている)を通じて数を表現していることにあたる。また、文章もビット列(の列)によって表現できるが、ここでは、文章を組み立てている一つずつの文字につけられた名前(ビット列による符号)が使われている。
 このように名前説明を通じて情報を表現する方法を、デジタル(digital)な方法という。この名前は、数を伝えるのに指(digit)を立てて見せるやり方に由来する(資料[デジタル])。
 これに対して、70年代以前の情報システム(初期の一部のコンピュータも含めて)の多くは、電圧や水圧の大小で数量を表現し、それを使っていろんな作業を行なっていた。以前のラジオやTV、テープレコーダやビデオデッキなどは、このような技術として成立してきた。このような方法を、アナログ(analogous)な方法という。この名前は、アナログが、たとえ(analogy)による表現であることに由来する(資料[アナログ])。
 デジタルとアナログとは対照的な二つの技術だと考えられることが多い。しかし、アナログの技術は実はそれほど歴史のあるものではなく、数量に関わる情報に対してしかアナログの技術は確立されていない。したがって、アナログな技術は、ごく限られた情報に対して、慎重に適用しなければならない。特に、ことばで語られるような知識に対しては、アナログな手法は使うべきではない(資料[?"アナログは人間的"?])。


オプション
数の表現
自然な整数


 先生が読心術の手品を演じてみせるので、そのしかけがどうなっているのか当ててみよう。

 0、1、2、...(=0と正の整数とを併せたもの)を自然な整数という(ただ自然数という場合もある)。初めに、自然な整数を表現する方法について考える。自然な整数の表現は、ほかのもっと複雑な数の表現の基本にもなっている。
 自然な整数だけ考えればいい場合は、0以上ある決めた上限未満の範囲に対して、0以上1未満の場合と同じように段階的等分法によって符号を割り当てることができる(資料[数の表現 自然な整数])。この場合は、0以上1未満の場合とは違って、十分に長い桁数のビット列を使えば、1種類の符号に別の数が割り当てられることはなく、数の違いと符号の違いとがきちんと対応する。

 さっき作った4桁のビット列の表のそれぞれのビット列に対して、何の数が対応するか考えて書き足してみなさい。

 あるビット列が数の符号として使われているとした場合に、0以上1未満の数を表現しているか自然な整数を表現しているかによって、その意味は全く違う。つまり、たとえば自然な整数を意味しているのならそのことを何かほかの手段で伝えておかないと、符号だけではそれがどの数を表現しているのかは分からない。このように、符号や信号は、全く同じものが場合によって別々の意味に使われている。

 自然な整数にビット列を対応させたり、逆にビット列からそれが表わす数を読み取ったりするには、正直に等分を繰り返したりする必要はない。もっと小さな表とちょっとした(回数は多いけれど)計算とで簡単に変換できる。もしそうでなかったら、コンピュータは数を読み書きするために膨大な表を覚えておかなければならなくなってしまっていただろう。自然な整数の符号化/復号の手順について学習しなさい(資料[自然な整数フビット列])。

 このことを実験で確かめてみよう。2桁ぐらいの自然な整数を一つ決めて、それを表現する4桁のビット列を割り出してみなさい。それができたら、逆にそれが意味する数を割り出してみなさい。もとの数に戻れるはずだ。

 自然な整数についての段階的等分法では、2^(ビット列の桁) 未満の数にしか符号を割り振ることができない。つまり、使うビット列の桁によって符号を割り振れる数の範囲が限られてしまう。だから、自然な整数に対して段階的等分法を使う場合は、あらかじめ、符号を割り当てる数の範囲をはっきり決めておかなければならない。数は文字と違って無限に種類があるので、この点では、段階的等分法はかなり制約が厳しい符号化だと言える。


数の表現
ビット列と数との対応


 実数[0..1)や整数[0..16)についての段階的等分法では、0(最小の数)と××...×(最弱のビット列)とが対応していて、しかもそのほかの数の大小とビット列の強弱とはちょうど対応している。整数[0..16)の場合で言えば、ビット列を強弱の順に並べておいてから、小さい方から順に0, 1, ...と数を割り当てていけば、段階的等分法でと全く同じ対応が現れる。

 また、ビット列の足し合わせと、そのビット列が表現する数の足し合わせとは(ほぼ)完全に一致する。しかも、ビット列は数より簡単に足し合わせができる。

 これを実験で確かめてみよう。0〜99の自然な整数を二つ決めて、それを以下の二つの方法で足し合わせてみなさい。

ア:それぞれを表現する8桁のビット列を割り出してビット列として足し合わせ、それから逆にその結果が意味する数を割り出す
イ:そのまま足し合わせる

 どっちも同じ結果になるはずだ。

 ただし、決まった長さの桁で表わせる数の範囲は限られているから、和がその範囲を超えてしまうと、ビット列の和から得られた結果は正しい和にはならなくなってしまう。

 これらのことは、対応する符号の比較/計算(機械には易しい)をすれば、もとの数の比較/計算もできてしまうということを意味している。これは、自然な整数の場合だけでなく、0以上1未満の数の場合でも成り立っている。これは段階的等分法のとても優れた性質だ。


加工のための表現


 これまで、メディアがいろいろな形式で表現されているようすを学んできた(表[いろいろなメディアとその表現の形式])。これらの多くの形式は、それぞれのメディアをどうすれば記録できるか、またはどうすれば通信できるか考えて生み出されてきた。たとえば、サウンドやスチルの表現のための書式であるPCMVHSは、記録や転送のための書式だった。
 しかし、ここで数を表現する形式として学んだ自然な整数についての段階的等分法は、もともと、記録や通信のためだけのために生み出されたのではない。むしろ、自動的に、数の大小を判定したり、和や積を求めたりするための、加工のための形式として生み出された。自然な整数についての段階的等分法のように、メディアの表現の形式のうちのあるものは、記録や通信だけでなく、計算や比較などの加工によって、情報の中に埋もれている新しい情報を掘り起こす作業にも役立てられている。


可換の4角形


 (自然な整数の)数の和は、自然な整数についての段階的等分法のビット列の和で求めることができた。このような、実体の操作がその情報の操作で代用できる関係を可換の4角形という(資料[可換の4角形])。
 情報の加工に役立てるために新しい表現を考え出そうとしている場合には、なるべく多くの可換の4角形が成り立つような表現を見つけるようにするといい。そして、その表現では、どんな場合に可換の4角形が成り立ったり成り立たなかったりするのかをきちんと確かめておかなければいけない。


数の表現
負の整数


 自然な整数だけでなく、負の整数にもビット列の符号を割り振ることができる。負の整数に対しては、反数(和が0になる相手の数=+/-を逆にした数)補列を符号として割り振る(資料[数の表現 負の整数])。

 練習として、-99〜-0(?!)の負の整数を決めて、それを表現する8桁のビット列を割り出してみなさい。このビット列は、同時に別の自然な整数の符号にもなっている。その数も割り出してみなさい。

 この割り振り方は変わっているように見えるが、このようにすると、自然な整数の場合と同じように負の整数の和も、ビット列の和を求めることによって割り出すことができるようになる。つまり、ビット列の加工によって数の引き算ができる。

 これも実験で確かめてみなさい。つまり、0〜99の自然な整数を決めて、それと前の実験で使った数とを以下の二つの方法で足し合わせてみなさい(つまり引き算をすることになる)。そして同じ結果になるか確かめなさい。

ア:それぞれを表現する8桁のビット列を割り出してビット列として足し合わせ、逆にその結果が意味する数を割り出す
イ:そのまま足し合わせる

 また、特別な場合として、前の実験の数の反数(正負が逆の数)を表現するビット列を割り出し、前の実験で求めたビット列と足し合わせてみなさい。
 必ず××××××××(:0)になるはずだ。


数の表現
実数


 端数のある数のことをコンピュータでは実数と呼んでいる(端数のある数で表わせるのは数学でいう実数のほんの一部だが)。どんな(コンピュータでの)実数も、何回か2で割れば0以上1以下の数にすることができる。ここで、0以上1以下になった結果の数を仮数といい、それまでに割った回数を指標(指数、対数)という(▽図)。
 仮数は0以上1未満の数として、指標は(それほど大きくない)自然な整数として、それぞれ段階的等分法で符号に対応させることができる。そこで、実数はこれらの二つの符号をつなげた16〜32桁ぐらいのビット列によって表現される(資料[数の表現 実数])。
 整数でも、範囲があらかじめ決められない大きい数は、これと同じ手法を使って表現することができる。ただし、この場合は、端数の下の方の桁は正確ではなくなるかもしれない。また、もともと0以上1未満だけれど、とても小さくて左側にいくつも×が並んでしまうような数を、負の指標をつけて表現することもできる。

 実数の表し方はコンピュータによってかなり違っている。場合によっては、仮数や指標の正負を表現する桁がさらに追加されることもある。




学習の成果を自己評価してみよう
もっと深く学習してみたい人のための課題



|


Copyleft(C) 1997-06, by Studio-ID(ISIHARA WATARU). All rights reserved.


最新更新
06-05-24