読者です 読者をやめる 読者になる 読者になる

相対性理論を学びたい人のために

まだ一度も相対性理論を勉強したことのない人は、何か一冊相対性理論の本を読みかじってみて、なぜこんなことが?という、疑問を持ってからこのブログに来てください。

SONY許せぬと書きたかったが3

 現在2015年2月27日17時53分である。

 なんと2つ目の投稿でも終わらなかった。もう、日をまたいで書いているので、本当なら題名も変えた方が良いのかも知れないが、話がつながっているので、番号を振って並べることにする。


SONY許せぬと書きたかったが1


SONY許せぬと書きたかったが2


 それでは続きを始める。

「プログラムがちゃんとしてないと恐ろしいことになる。」
という話だった。
 まず、プログラムという言葉の意味が分からない人がいるので、例えば、Wordとか、このホームページを見ている、インターネット・エクスプローラーなどの、閲覧ソフト(ウェブ・ブラウザなどとも言う)など、コンピューターに仕事をしてもらっているソフトだと思えば良い。そして、自分の経験でも分かるように、そういうソフトは、Wordなら、文章を書き終わったら、ウェブ・ブラウザなら、インターネットを見終わったら、終了させる。
 今の人なら、右上の×をタッチすれば良いのだ、と思っているだろう。
 これが、正常にプログラムが停止したときだ。
 プログラムが停止してもWindowsや、Mac OSは、動き続けている。だから、プログラムが止まっても、CPUは動き続けている、というのは、現代の人には、なじみ深いのかも知れない。

 だが、私が小学校3年生の時から使っていたPC-8001や、私が中学3年生から、大学の4回生の時まで使っていたPC-9821VM21などでは、そんなことは、当たり前ではなかった。
 ウィンドウズなんてものがなかったから、コンピューターは、『一太郎』というワード・プロセッサ・ソフトや『現代大戦略』という戦争シミュレーションゲームなど、ソフトを、使い終わると、パソコン自体が、停止モードになり、何か命令をキーボードで書き込むか、リセットボタンを押さない限り、コンピューターは、貝のように殻に閉じこもってしまい、もう動かなかった。
 だから、
「『コンピューターが暴走する。』というのは、停止モードへ行ったのだな。」
というのが、昔の一般の人のとらえ方だった。
 これは、まったく間違いというわけではない。暴走したとき、コンピューターが停止しているように見えるモードに行ったというのは、間違いではないのだ。



 しかし、停止しているように見えるモードにも色々あって、昔のパソコンのように本当に仕事が終わって、CPUが暇な状態になった停止モードの他に、CPUはどんどん複雑な働きをしているのに、見た目が何もしてないように見える停止モードというのがあるのだ。
 この後者の場合の1つが、Wordが終わって、Windowsに戻った状態なのだ。見かけ上、パソコンは動きを止めるが、次にあなたが画面のどれかのアイコンをタッチすれば直ちにそのソフトが立ち上がる。
 要するに、コンピューターは常にすぐ動けるように準備をし続けているのだ。
 むしろ最近の人の方が、こういう準備中で忙しく動き続けている、CPUの状態というのを、理解しやすいのではないかと思う。

 ここまできてやっと、
「プログラムがちゃんとしてないと恐ろしことになる。」
という話が出来る。
 まず、『Excel 2000』のプログラムがちゃんとしてなかったという話をしよう。Excel 2000というのは、2000年に発売されたバージョンのExcelである。
 Excel 2000は、売り出す前に何度も試験されているし、多くの人が使っていて止まらないのだから、そのプログラムは、かなり信頼出来るものだった。だが、多くの人が使っていても、大部分の人が使わないコマンドというのもあるのだ。

 私は、ある時、弟が使うからというので、Excel 2000のアドインというものを全部使える状態にしたことがあった。そうしたら、Excel 2000が、もう立ち上がらなくなってしまった。アンインストールしようとしても、そのアンインストーラ自体が立ち上がらず、どうしようもなくなって、しばらく、Excelを使えなかった、ということがあった。結局それは、2年後にExcel XPというのを買ってきて、上書きしたことで、解決した。
 笑えない話であるが、本当のことである。
 この場合、何が起こったのだろうか。

 こういうことである。
 『アドイン』などというものは、名前を知っている人も少ないように、滅多に人が使わないコマンドなのである。そのために、マイクロソフトの試験がきちんとなされていなかった。
 アドインにしろ普通のオープンなどのコマンドにしろ、コマンド、つまり命令をコンピューターに与えると、コンピューターは、その命令をこなしてくれる子会社、すなわちサブルーチンに飛ぶことになる。そして、大抵はちゃんとプログラムに書かれているリターンみたいな命令に出会い、元の作業に戻る。

 人間の与えるコマンド(命令)と、プログラムに書いてある命令は、一対一に対応はしていない。人間が1つコマンドを与えると、コンピューターはたくさんの命令を駆使してそのコマンドを実行してくれるのだ。

 そして、『アドインを全部使えるようにする』というコマンドに対応するサブルーチンには、そのもの自体に不備があったか、リターンの命令がなかったか、で、きちんと戻ってくるという機能が欠けていたのだ。

 そのために、私のExcelは、動作出来なくなった。Excelを立ち上げようとすると、そのまま暴走する。

 これが、暴走の一つのケースである。

 これ以外にも、同じところを、ずっと回り続けてしまう、というケースもある。

 いずれにせよ、プログラムは、いつかは止まる、というのが大前提なのだから、その止まるのが、いつ来ても、おかしくはないのである。人の命と同じだ。

 そして、終わったときに、ちゃんと役目をWindowsに戻して、スムーズに移行を完了させられるようにちゃんとプログラムされていないと、当然のことながら、暴走することになるのである。

 これは、すなわち、WordやExcelが、Windowsから見て、一つのサブルーチンになっているからである。

 Windowsにちゃんと戻れるようにプログラムすることが、プログラマーには求められているのである。プログラムを組むときには、ちゃんと組もうね。

 最近は、何も考えずにプログラミングしていても、大丈夫なようになってきているが・・・




 さて、この話は、アセンブラを説明するために、まず、コンパイラの話をしていたのだった。

 そして、パソコンに与える命令の数は、いくつくらいだろうか、という問いかけをしていたのだった。

 PRINT、GOTO、足し算、引き算、かけ算、割り算、累乗、そして、GOSUB、RETURN

などを思い付いた。


 こうして見てくると、人間の欲望には切りがないから、どんどん命令を増やしたくなるのが人情である。例えば,最初はなかったのに、ある点を中心として半径5の円をディスプレイに描け、という命令、
IRCLE(サークル)
なんてのも欲しくなる。
 実はN-BASICには、この命令はなく、後にN88-BASICという上位バージョンになってから加わった命令である。
 なんでそんなことを知っているかというと、PC-8001で『日本国旗』すなわち『日の丸』を描こうとしたのにどうしても描けず、滅多に質問しない私にしては珍しく、父に、
「『日の丸』を描きたいのに出来ない。」
と言ったら、父が“三角関数”という魔法のようなものを使って、丸を描いて見せたのだ。しかも、丸を描いて中を塗りつぶすという普通の人の常識のような方法も使えなかったので、父は半径1から始めて半径2の円、半径3の円と描いていき、画面が160ドット×100ドットだったため、日本の国旗の日の丸の比率、つまり赤い丸の半径が旗の短い方の長さの30%になる、というのに合わせて、100ドットの30%つまり半径30まで赤い点を打ってくれたのだった。ところが、父は数学者ではなかったので、半径を0.5ずつ増加させるなどの配慮をしなかったために、精度の悪さから、半径30の円と半径29の円の間に隙間があり、赤い丸の中に白い点が2つか3つ残ってしまった。
 そんなプログラムミングミスはあったが、私には次々と円が1点ずつ描かれて行くのが、魔法か奇跡のように思え、父はどんなプログラムでも組めるのだと尊敬した。
 今でも、それが、どんなプログラムだったかは覚えている。分かってしまえば、当たり前のことなのである。
 人間が、学習によって、どんどん賢くなり、賢くなってしまうと、以前、難しく思えたことがなんでもなくなる、ということの良い例である。




 さてここで、なぜこんな話をしたかというと、プログラミング言語の種類によって、使える命令が異なるということに気付いて欲しかったからだ。もっと言うと、
「昔のプログラミング言語より、最近のプログラミング言語の方が、命令の数が多い。」
ということに気付いて欲しかったのだ。


 ところで、プログラムを書く人であるプログラマーだって人間だ。そんなにたくさんの命令の名前は、覚えられない。100個が、限界だろう。いや、中にはものすごく優秀なプログラマーがいて1000個覚えられるとして、パソコンに1000通りの命令の与え方が、できるように、パソコンを設計するとしてみよう。その1000個の命令を全部区別するには何桁の2進数が必要だろう。
 コンピューターは、0と1しか分からないのだから、1000個の命令を1列に並べ、全部に背番号を付ける。この時、0と1だけで数字を書くのだから、2進法である。何桁、つまり何ビット必要だろう。



 実はもうヒントは出ている。さっき、14桁目が1の時、8192、というのを苦労してもいないが一応計算して求めた。あれは、無駄にはならない。ああいうものは利用するに限る。
 まず、こういうことを考える。さっきの逆をやるのだ。14桁目が8192だったのだから、13桁目が1だったら、
8192÷2
を計算すれば良い。こういう時、まじめに計算しても良いが、なるべく省力する。
 まず8000は4000になると思う。次に、192だけ見る。2は半分になって1かな?と思う。だが、まだ書かない。次に190を半分にする。まず100の半分が50、それから90の半分が45。この90の半分が45だというのは、計算に慣れていない人には、
「えっ、どうしてそんなことすぐ分かるの?」
と不思議だろうが、それは小学校の時の計算練習不足である。
 さて、190の半分は50と45だから、95だ。そうすると、192の1の位は1ではなく5+1で6だ。さっき早まって1とかかなくてよかった。192の半分は96なのだ。結局、
8192÷2=4096
であることが分かった。


 次にこれを応用する。12桁目が1だった場合を考える。
4096÷2
である。どうやって計算する?
 もう分かっているよね。4000は2000になると思う。次に96を半分にする。6の半分の3を書く前に、90を半分にする。
 45だから、さっき書かないで覚えておいた、3を使って、5+3が8だと計算して、96の半分は48だと分かる。
 結局、
4096÷2=2048
である。さあもう1回は、見ただけで分かる。
 11桁目が1だったら、それは、10進数でいくつだろう。
2048÷2=1024
であるのは、暗算で誰でもできるよね。
 だから、


0000010000000000
     ↑
  11桁目が1


という2進数の数は、10進数になおすと1024(せんにじゅうよん)となる。



 私が何をやりたかったかというと、この計算テクニックを盗んで欲しかったことと、1000にすごく近い数字が出てくることを知っておいてもらいたかったということだった。そして、欲を言うなら、この1024-1=1023(せんにじゅうさん)という数が、両手の指で数えられる最大の数だということを知って欲しかった。
 なぜ両手で1000もの数を数えられるのかというと11桁目が1の時、1024なのだから、その直前つまり1が10個並んだ状態が、1023のはずだ。


 どういうことかというと、

0000010000000000

になる直前は(つまり1足す前は)、

0000001111111111

だっただろう、というのである。


つまり、

0000001111111111

に、1を足すと、

0000010000000000

となるということである。


 これは、後で確かめる。


 10個の1ということは、両手の指を全部折った状態と思える。そして、それより小さい数は全部、折ってある指のどれかを起こしたもの、つまりどこかが0になったものだ。


 どういうことをやっているかというと、

1111111111  が 両手の指を全部折った状態で、それが10進数で1023だった。

 次に、そこから1を引く。右手の親指を起こせば良いから

1111111110  が 左手の指を全部折り、右手は親指以外全部折った状態。それが、10進数の1022なのだ。



 もう少しやると、さらに1を引く。1の位はゼロで引けないから、上の位から借りてくる。10進数の時の応用。

1111111101  となるはず。

 2の位から2を借りてきて、そこから1を引いた。だから、残った1を1の位に書く。2の位は持ってきてしまったので、0になる、というわけ。他の位は影響を受けない。

 だから、

1111111101  が 左手の指を全部折り、右手は人差し指以外折った状態で、これが、10進数の1021だ。

 ちょっと確かめる方法を言っておくと、一番右の桁、つまり1の位が0ならば10進数にしたとき偶数。1ならば10進数にしたとき奇数である。上の桁は全部2の何乗かの桁なのだから、そこに1があっても全部偶数になるからなんだね。



 さて、もうちょっとやっておかないと、応用できないだろう。

 さらに、1を引く。それは簡単。

1111111100  である。指の折り方はもう分かるね。これが、10進数の1020だ。

 もう一回1を引けるかな? それが、試金石だ。10進数の時を思い出して!

 結論は、また上の桁から借りてくる。1引くだけだから、全部の桁にばらまいちゃう。こうだ。

1111111011

 4の位にあったものを1の位と2の位にばらまいちゃう。

 これは、例えば10進数での引き算で、

 100
-  1
____

というものをやるとき、100の位、つまり、3桁目から借りてきたものを、

 100
-  1
____
  99

というように、10の位と1の位に完全にばらまいてしまうのと同じ。どちらの桁も9より大きな数は入らないから上から持ってきたものを自分の受け止められる最大限受け止めていることが分かる。
 これが、10進数の正しい計算であることは、小学校3年生以上なら、知っているよね。



「人間は、自分の受け止められない試練は受けないものなのかなあ。それとも、自分の受け止められない試練を受けてしまった人が死んだ人なのかなあ。まだ分からない。」
と、今でも思う。



 こうやって、覚え方を私は、言っている。
「1を引くとき、上の桁から持ってきたものを下の各桁は受け止められる限界まで受け止める。」
 つまり、簡単に言って、
「受け止められる限界まで受け止める。」
と覚えておくと分かりやすいでしょ。

 塾へ行くことのメリットというのは、こういうコツを教わることなのだから、どんどん私のコツを盗んでね。




 ここで、覚えたことを使って、後で確かめると言った、

0000001111111111

に、1を足すと、

0000010000000000

ということが、本当に確かめられる。

 実際に、

0000010000000000

から1を引くと、それより下の全部の桁に、受け止められる限界まで、ばらまくのだから、

0000001111111111

となることが分かる。

 逆に、

0000001111111111

に、1を足すと、

0000010000000000

になる。

 簡単なことだったのである。




 14桁目が1の時、8192だったのが、ヒントだと言ったのは、この1024を見つけるまでの話を、その後に補うことで11桁目が1の時、1024となることが分かって、1000個の命令に背番号をふるには、11桁は、必要ない、10桁で十分だと、問題が解けたことで、理解してもらえたと思う。

 コンピューターに与える命令全部に背番号を付けるとして、何ビット必要かが問題だった。答えは10ビットである。



 ここで、背番号の話に関連させて、一体どういう条件を満たしていれば、その集合の要素に背番号をふれるのだろうかと、考えてみる。

 実は、私が『絶望』することになった、『ツォルンの補題』という定理を認めると、
「中身の入っている集合全部から、同時に1個ずつ中身の要素を選び出すことができる。」
という、一見当たり前のことを言っている、選択公理(せんたくこうり)という、公理だから、本来証明するものではなくて、当たり前だからみんな認めましょう、というようなものが、証明できてしまう。

 私が証明したのでは、もちろんない。

 ところが、この選択公理は公理なのに、認めたくないことを定理として証明してしまうのだ。まず、バナッハ-タルスキのパラドックスと呼ばれている定理が証明できる。私はまだ証明を読んでないが、こういう定理である。

 3次元空間にある半径1の球を5人以上のある人数の人間に、分けることを考える(5人未満だとうまくいかない)。この時、ひとりひとりの受け取る断片は無限に多くのパーツからなるように分ける。だが、まだ、食べさせてはあげない。そして、ひとりひとりに一度配ったものを回収してもう一度、今度は、別な配置に組み合わせる。そうすると、今度は半径2の球が作れるというのだ。
 多分、諸君は、
「密度が下がったのではないか。」
と思うだろう。ところがそうではないのだ。
 半径2の球になったのだから、そこから、半径1の球を切り出して、みんなに配る。そして、今度は、
「食べていいよ。」
と言う。みんな食べる。
 だが、球はまだ十分残っている。だから、明日も明後日もその次の日も、永遠に、みんな食べられる。5人より人数が増えても大丈夫。
 これでは、聖書の中に出てくるイエス様と同じだ。何人でも食べられる。パラドックスと言って良い。


 諸君は、そんな数学の方が良い?


 実は、私もそう思っていた。このバナッハ-タルスキのパラドックスという定理なら、認めても良いと思っていた。
「こんな夢のある数学っていいな。」
と思っていた。


 ところが、その選択公理を認めると嫌なことも導かれることが分かった。それは、積分に関することである。微分とか積分というとアレルギーのある人もいるようだが、積分というのは簡単に言うと面積や体積を求めることだ。
 体積というのは、どうやって求める。?
 ティッシュペーパーの箱のような直方体なら、縦かける横かける高さである。
 じゃあ、球は?
「身の上に心配あーる。」
 なんて、覚えている人もいるようだが、

{\displaystyle
\frac{4}{3}\pi r^3
}

が、球の体積だ。

 ところで、体積は、いつもこんな風にきちんと求められるとは限らない。じゃあ、どうやって体積を求める。?

 そのものの中が中空になっていなくて全部ぎっしり詰まっているなら、方法がある。その物体より大きい立方体の入れ物にふち一杯まで水を入れてから、その物体を沈める。あふれて出てきた水の量が、その物体の体積だと分かる。

 これから、中が空洞でなければ、体積は必ず求まるものだと、結論していいだろう。

 そして、実は数学的に計算で体積を求めるのが、積分なのだ。

 ところで、積分積分でも格の違いがある。

 高校生が、最初に習うのは、不定積分というものを用いたただの定積分

 それから、区分求積法というものを習った人もいるだろう。

 次に、大学1年生なんかが普通習うのは、リーマン積分

 これは、例えば次の本に、厳密な定義がある。

杉浦光夫著『解析入門Ⅰ』(東京大学出版会

解析入門 (1)

 ところが、経済学で出て来る、ブラック・ショールズ方程式などを理解するためには、これでも力不足。

 それでは、ということで、ルベーグ積分というものがある。

 しっかり学びたい人は、古い本だがきちんと書いてある、次の本が良い。

ルベーグ積分入門 (数学選書 (4))

 実はこの本、第1章だけがいい加減なのだ。それで、つまずいてしまう人が多いのだが、書いている数学者がけっこう優秀なので、易しいことを上手く書けなかったのだろう。専門のことは分かっていたんだけどね。

 そして、そのルベーグ積分が、究極の積分なのである。

 これが、なぜ究極と言えるかは、すぐ後で分かる。

 ところが、なのである。あの選択公理を使うと、ルベーグ積分で体積を求められない物体というものが、作れてしまうのだ。

「中が中空なんじゃない?」

と、思う人もいるかも知れないけど、中は中空じゃない。だから、水を張った水槽に入れてあふれる水の量によって、物理的には体積を測れる。

 実は、なぜルベーグ積分で体積が求められないのかというと、それには次のような矛盾があるからなのだ。

 まず、その物体を作っている材質が、例えば金だったら比重は19.3だ。だから、その金の量を重さを測ることで求められる。例えば193グラムなら、193÷19.3=10で、10ccと、体積が求められるのだ。

 つまり、我々には、物理的に2つの体積の測り方があるのだ。

 そして、常識から考えて、

『あふれる水の量から求めた体積{=}重さから密度を使って求めた体積』

が、成り立っていなければならない。

 ところが、さっきのルベーグ積分で体積を求められない物体に関しては、これが、一致しない。

『あふれる水の量から求めた体積{>}重さから密度を使って求めた体積』

と、なってしまうのだ。だから、本当は、物理的にも確定的な体積は求められない。



 ここまでなら、

ルベーグ積分にも限界があったんだね。」

で、済まされる。

 だが、ルベーグ積分は、究極の積分なのだ。

 1970年代に、集合論から、選択公理をはずし、かわりに『ルベーグ積分で体積を求められない物体はない』ということを公理として認めても、矛盾が生じないことが、証明されたのだ。

 正確に言うと、

「『実数の部分集合には、ルベーグ非可測な集合はない。』という公理を、通常数学をやるとき数学者が使っているZF(ツェルメロ/フレンケル)の集合論の公理というものに加えても、その公理達は矛盾しない。」

ということが、証明されたのだ。

 これはどういうことかというと、積分出来ない関数はないような数学を作れる、ということである。要するに、すべての関数が積分出来るという数学である。

 だから、私としては、選択公理を認めたくない。

 確かに、選択公理があると、何人でも分け前にありつけるなどという良いことも起こるが、体積が確定する、というのは物理学者から見て当然なことに思える。だから、選択公理は、公理からはずしたい。


 ところが、ところが、なのだ。

 選択公理を用いると、次の定理が証明できる。


 定理 (ツェルメロの整列可能定理)

 すべての集合を、どれか1つから始めて、1列に並べることが出来る。


 つまり、どんな集合でも、いや、集合全部の集まりである{\mathbf{V}}(この{\mathbf{V}}は集合ではない)に関しても、その要素に、背番号を振ることが出来るのである。{\mathbf{V}}はクラスと呼ばれるものの一つである。


 ただし、一応注意しておくと、大学の数学で習うように、自然数の集合で、番号付けることが不可能なくらい、無限の量が大きい無限集合が存在する。

 だから、背番号に使うのは、0、1、2、3、・・・ などの自然数だけでなく、もっと大きいもの、『順序数』というものを使わなくては、ならない。そして、そういう順序数全体の集まりを、{\mathbf{On}}と書く。順序数は、ordinal number (オーディナル ナンバー)と言うからである。


 そうすると、『どんな条件を満たす集合なら、背番号をふれるか』という問題は、選択公理を認めると、『どんな集合でも、必ず背番号をふれる』ということになる。


 初めの話はこれで、終わっていない。実は、この『ツェルメロの整列可能定理』が成り立つと、『ツォルンの補題』が証明できるのだ。
 ツォルンの補題から、選択公理が証明できることは、最初に言ったが、ツォルンの補題が、どういうものかは言ってなかった。
 これは、厳密に言うのも簡単なのだが、次のように覚えると覚えやすい。


 「ある国で、『どんな会社にも社長がいる。』という命題が成り立っていたとすると、その国では、『その国の誰の部下にもならないような人間が少なくとも一人いる。』という命題が成り立つ」
というのが、ツォルンの補題である。


 この説明法は、私が大学に入ったばっかりの青二才だったとき、大学院の博士課程の秀才達を前に、ツォルンの補題を一所懸命説明していたとき、博士課程の2年生だった土基(つちもと)さんという人が、
「お前の説明じゃ、みんな分からん。こうやるんだ。すべての会社に・・・」
と言って、教えてくれたものなのである。

 その土基さんという人は優秀で、大学から学費免除になっていたほどの人であり、何年か前に、次の本を書いた。

土基善文著『xのx乗のはなし』

xのx乗のはなし (はじめよう数学)



 大学に入ったばかりで、まだ難しいことを何も知らなかったのに、背伸びして大学院へ行って、生意気にみんなの前で、演説していた私にとって、

「この人はすごい。」

と思わせられた、エピソードだった。



 さて、ツォルンの補題の厳密な表現は、


 定理 (ツォルンの補題

 順序の定義された集合Xで、Xの任意の全順序部分集合の上界が、Xに存在するとき、Xに少なくとも1つの極大元が存在する。


 大学に入ったばかりの私は、これを必死で説明していたのである。土基さんの説明の方が、よっぽど良く分かる。


 そして、これは良く分かると言うことはつまり、公理のように、正しいこととして、認めて良いことに思える。
 そして、もう一つ、このツォルンの補題を認めたくなるのは、微分積分で扱う、無限小量というものを、合理的に扱えるようにする超準解析というものを考えるときに、このツォルンの補題選択公理が必要になるからなのである。


 ここで、選択公理も、きちんと明示しておこう。

 公理 (選択公理

 {A,B,C,D,・・・}と、集合が有限個、または、無限個あるとする。そして、AもBもCもDもみんな全部、要素が1つ以上入っているとする。このとき、選択関数と呼ばれる関数Fが作れて、F(A)=a,F(B)=b,F(C)=c,F(D)=d,・・・となっていて、このa、b,c,d,・・・について、a∈A,b∈B,c∈C,d∈D,・・・となるようにできる。
 この選択関数が作れるというのが、選択公理である。


 私が感じたのは、結局、数学を信じてやっていくということは、ツォルンの補題を認めることであり、すなわち選択公理を認めることであり、バナッハ-タルスキのパラドックスルベーグ積分不可能な関数の存在を認めることなのである。

 今の私は、やっぱり、物理的な体積は確定するという直観に基づくルベーグ積分不可能な関数はないという数学より、数学的に中身の豊かなツォルンの補題を認める数学を、信じる気になっている。だって、その方が面白いし、美しいんだもの。



 今の私は、『絶望』から脱し、『至福』の中にいる。



 私の『絶望』の内容を説明したくて、コンピューターに与える命令に背番号をふる、という話から脱線していた。
 だが、数学にも色々あって、それぞれの人が、自分の好きな数学を作れるという話は、普通の人にとっては、驚くべきことだっただろう。こういう部分を捉えて、数学というものは、所詮パズルであり、妄想に過ぎないなどという人がいる。

 例えば、
東京大学物語
東京大学物語 34 永遠の青春 (BIG SPIRITS COMICS)


の中で江川達也さんは、

「数学は、最初から妄想であると自らの世界を規定しているところが他の学問に比べて潔い。数学にのみ正しいか正しくないかがある。妄想のルールを決め、そのルールの中で論理的に正しいか正しくないかを決める。数学は妄想ではあるが、筋の通った妄想である。しかし現実ではない。現実と似ていることはあっても現実ではない。」

などと書いている。


 数学は妄想だというのは、まったく間違いではないが、私は、正しくもないと思う。数学は妄想だというのは、江川さんの妄想だと思う。数学には、妄想という言葉で片付けきれない、妄想でない何か、それを私は、真理と呼ぶのだが、そういうものが含まれていると思う。そして、その真理こそが、数学の本質だと思う。

 数学は、美しい真理であり、それぞれの人にとって自分の数学がある、その全部の集まりが、数学本体なのだ。妄想から真理が生まれることもあるが、妄想を超越した宇宙そのもののような真理であるのが数学だと、私は思う。だから、私は、数学を信じることが出来る。数学は、現実なのだ。
 数学で証明された定理を、系統的に書き綴った、ブルバキ全巻、真理の書でなくなる、などということには、ならなかった。

 諸君にとって、数学は、どう映っているだろうか。


 本当はこの後、命令の個数が1000以下なら、10ビットで全部に背番号がふれることを説明し、100以下なら7ビットで全部に背番号がふれることまで、話したかった。
 そして、今の方が命令の数が増えていて、それでも1000以下だろうから、昔は100以下だっただろう、と話す。
 よって、8ビットで、全部の命令が表せることになる。
 次に、メモリという概念を導入する。
 それと同時に、アドレスという概念も導入する。
 そして、1T(いちてら)バイトのメモリにアドレスをつけるのに、何ビット必要か、計算する。
 これらを用いて、CPUには、命令の64本の線の他にもプログラムカウンタやレジスタなどとの線もつながっていることを話す。
 そして、やっと、高級言語で書かれたプログラムが0と1で書かれているという状態と、マシン語のプログラムが0と1で書かれているという状態が、違うということの説明ができる。
 こうして、コンパイルしたプログラムの方が、インタプリタのプログラムより速くなるということを説明する。
 この説明から、逆コンパイルの概念を抽出する。
 そして、そこから、一番言いたかった、コンパイルされたプログラムには、無駄がある、ということを、浮き彫りにする。
 いよいよ、アセンブリ言語を登場させ、それを理解するまでの苦労の話から、現代のアセンブラ理解のための道筋を話す。
 C言語などには、インラインアセンブラの機能があり、ある程度は、アセンブリ言語で書かれていることを話す。
 アセンブリ言語だとどれ位速いかの例として、圧縮解凍ソフトを挙げ、Windowsの普通のソフトとの速さの違いを説明する。
 この過程で、一般の人に、アセンブリ言語というものを、知ってもらう。そして、アセンブリ言語でプログラムを組める人を養成する。


 最終的に、このブログを読んだ人の中から、C言語やBASICから、アセンブリ言語で組んだのと同じだけの、無駄のないプログラムを生み出すコンパイラ(要するにその目的を果たすのに、アセンブリ言語で書かれた、最も無駄のないプログラムをアセンブラにかけて得られるプログラムをAとしたとき、BASICで、プログラミングの下手な人が、同じ目的を果たす無駄のたくさんある冗長なプログラムBを書いても、Bをそのコンパイラにかけると、コンパイルされたプログラムとしてAが生み出されるような、魔法のようなコンパイラのことを私はここで言っている)を作り出してくれるプログラマーが現れたら、その人は、青は藍より出でて藍より青し、となると説く。


 私がこの一連の投稿をしているのは、実はこのためだったのである。私の策謀は、普通の人には計り知れないものだっただろう。この策謀の結末やいかに。


 ここまで全部を、私なりに丁寧に書き、最後に、私が数学や物理学を信じるのも、ソニーを信じるのも、そのイメージが綺麗だからだ、と書く。
 『SONYのイメージは、吉永小百合だ。』と言った往年のエンジニアのことを引き合いに出し、
「人間何をやるのでも、イメージというものは大切だから、いい加減なことをしないように。」
と書き、
「私自身いい加減なことを書かないように、コンピューターのことは、インターネットで調べて、勉強しながら書いてきたのだった。」
と告白して終わろう。


 ここまでを、私は構想して、最初の投稿から書き始めたのだったが、なかなか進めるのは大変だ。
 そんなわけで、一応ここで、全体のプロットを書き出しておいて、今後、この続きがどうなるか、諸君が見通せるようにしておこう。
 パソコンの得意な人は、これを読んだだけで、私の書くことが、おおよそつかめるだろう。
 そんなわけで、今日はここまでで、一区切りにする。


 これを書いているのは、まさにソニーのパソコンであり、私は、これを信頼している。今も一回、グーグル・クロームが停止したが、パソコン自体は、暴走しなかった。さすが!
『製品を信頼できる。』
というのは、メーカーにとって絶対に手にしたい金棒である。
 私の家には、ソニーテレヴィ、スピーカー、ラジカセ、ヴィデオ・テープ・レコーダー、ウォークマン、パソコン、DATレコーダー、CD-MDプレーヤー、ヴォイス・レコーダー、無数のカセット・テープ、ヴィデオ・テープ、DAT、MDがあったし、ソニーとフィリップスが開発したCD、SACDも数えられないほどある。
 それらの製品の中には、良くないものもいっぱいあった。Windows me のVAIOは、どうしようもなくダメだったし、DATレコーダーも、巻き戻しのトルクが弱く、何度修理してもダメだった。ソニーのDATのテープは、巻き戻しの途中でいつも止まり、切れたこともあった。TDKのテープは、同じ値段なのに、一度も止まったことはなかったのに。また、ヴィデオのベータ方式は、画像は綺麗だったが、最終的にVHSに負けた。
 それなのに、なぜか、SONYというロゴが入っているだけで、安心する。

 9日前の2015年2月19日に、ソニーがオーディオ・ヴィジュアル部門を切り離すというニュースを聞いた。パソコンのみならず、オーディオもか、という感じである。今後ソニーはどうなっていくのだろう。悲しい。
 信頼できるブランドが一つ消滅する、というのは、日本人にとっても世界の人にとっても、損失だと思う。
 私は、誰でもが、
『絶対これは信頼できる。』
というようなものを作りたい。
 私の場合、技術者ではないから、作るのは、物ではない。
 作りたいのは、信頼できる『概念』である。
『SONY』
のような、それがあるだけで安心する、というものを作ることを目指そうと、私は、ソニーから学んだのであった。
 SONY許せぬと書きたかったが、私にとって、今もソニーは、模範としたくなるメーカーである。
 今日はここまで。

 現在2015年2月28日6時55分である。おしまい。