先日「デジタル」という言葉から連想遊びを始めてみたら、思わぬところに辿り着いた。
digitalっていうのは僕に言わせると「離散的」ってことだ。反意語はanalogueで「連続的」。digitalは形容詞で、名詞としてはdigitがある。これの意味はケタ(桁)。ちなみに64ビットCPUとかの「ビット」はBinary Digitの略で「2進数の1ケタ」の意。
で、ケタって何だろう?と考えた。で、結論は、ケタがあらわすものは「単位」である、と(当たり前だ)。例えば1を単位(Unit)として、それが1つある、2つある、3つある、と数える。100、200、300というのは、100を単位として、それが1つある、2つある、3つある、ということ(当たり前だ)。ある量を単位としてそれが1つある、2つあると数えていることそのものは同じなんだけど、何を単位としているかが違う。その単位をあらわしているのがケタだ、と(当たり前だ)。
で、数の数え方を簡単にしようと思ったら、単位をかえるときのルールは統一しておいた方が便利だ。60秒で1分、60分で1時間なのに、24時間で1日なのははっきり言って迷惑な話だ。で、単位変更のルールを統一する。例えば、ある量を単位としてそれがN個集まったら、そのN単位を新たな単位として用いる。それがまたN個集まったら、それを次の単位にするというのがN進法。で、10進法だと、1、10、100、1000というのは、10の0乗、10の1乗、10の2乗、10の3乗という表記もできるわけだけど、このx乗のxは単位をかえた回数そのものだ。単位を1から始めたとして、2回単位をかえたら10の2乗である100が単位となっている(当たり前だ)。2進法だと、2の0乗、1乗、2乗、3乗、4乗というのは、1、10、100、1000、10000と表記されるわけだが、これは10進法だと1、2、4、8、16と書く。A0の紙をA1、A2、A3、A4と次々と2等分していけば、1枚のA0から、A1が2枚、A2なら4枚、A3なら8枚、A4なら16枚とれるのと対応している。
で、非常に面白いと思ったのは、単位変更のルールが統一されているということは、A0を2等分して2枚のA1にするのも、A1を2等分して2枚のA2にするのも、紙の絶対的な大きさを気にしなければやっていることは同じだということだ。つまり、パソコン上で紙を2等分していくと考える。1回切ったら表示を1.414倍(ルート2倍)する。また1回切ったら表示を1.414倍する。永遠に同じことを繰り返しているだけだ。
で、たぶん数学ではこういうのを「トポロジカルな関係」と呼ぶのだろうと思う。トポロジカルってのは「同型」つまり「(縮尺を無視すれば)形は同じ」ということだ。具体的な例が、Windows等のフォルダ表示だ。例えば、"Data"フォルダの中に同じ名前の"Data"フォルダを作る。その中にも"Data"フォルダを作る。これを永遠に繰り返す。こうすると、あるフォルダの1つ上の階層に上がっても、1つ下へ下りても、画面表示は同じだ。迷路のように今どこにいるのかわからなくなる。これがトポロジカルってことだ。フォルダの階層がどんどん深くなっていくということは、さっきの表現を使うと単位をかえている、つまりケタ上がりしたりケタ下がりしている、ということだ。トポロジカルという用語はフラクタクル理論の最重要キーワードでもある。フラクタクル理論を用いると人工的でないナチュラルなコンピュータグラフィックス表現が可能になる。自然界にはトポロジカルな関係がよくみられるらしい。木の形だったり、雲の形だったり、山の形だったり。全体と部分の関係が、その部分を全体としたときにまた成り立っている。そう思って眺めてみると、フォルダをエクスプローラ等でツリー表示にしたものは、フィヨルド海岸に見えなくもない。
ちなみに、コンピュータは、整数を2倍するとき、その数値を2進数表現したビット列を左へ1つ「ズラす」という方法で計算する。例えば8ビットCPUで整数1を表すと00000001これを2倍するとき、エイっとばかり左へ1つズラす。そうすると、00000010となる。これを10進数表記すると2。00000001を3つ左へズラして、00001000とすると8倍。3つズラすということは単位を3回かえているわけだから、2の3乗で8倍になる。これは10進法で1000倍したかったら、1000は10の3乗だから、もとの数値の右に0を3つつけてやればいいのと同じだ。
実は昔から乗算や除算って概念的に何をしているのだろうと常に疑問に思っていたのだが、考えてみると乗算・除算の演算というのは単位をかえているのである。例えば、ある数xを2倍するということは、そのxを単位として2単位ということだ。つまり3×2=6というのは、「3を単位として2単位あるとすると、それは1を単位としたときの6」ってことだ(つまり、正確には、3×2÷1=6)。2×0.5=1というのは、2を単位とする0.5単位は1ってことだ。除算も同じで、6÷3=2というのは、6は3を単位とすると2単位分に相当する、ということを意味している。6×(1/3)=2という表現をするならば、6を単位として1/3単位は2、となるから乗算の解釈とも辻褄が合う。0で除算ができないのは、「0等分できないから」などとそれそのものが哲学的な物言いをせず、0を単位とするとそれが何単位あっても決して6にならないからそんな計算はできない、と説明した方がいいだろう(っていうか学校でそう習ったんじゃないかね、実は)。
ここまで来ると後一息だ(何が?)。残る問題は負の数による乗算・除算によって符号がかわることの説明である。僕自身は単位の問題と正負の符号については分けて考えている。乗算・除算は単位をかえる演算で、量の計り方をかえていると言える。センチ単位からインチ単位にしたかったら、約2.5をかけてやればよい。乗算・除算というのは単位をかえているわけだ。それに対して、正負の符号というのは、ある量からある量への変化の「方向」を表している。つまり、乗算・除算による数値の変化は「量」の変化。それに対して、-1をかけて正負が逆転するのは変化の「向き」の変化である。例えば、収入は+で表す、支出は−で表す。10万円というのはお金の量だ。+10万・−10万円、というのはそれが収入なのか支出なのかを表す。稼いだにせよ消費したにせよ、増減したお金の変化量の絶対値(「向き」がない)は10万円。これは量(スカラー)。+10万円・−10万円の+と−の符号はお金の流れの向きを表す。方向性のある数値はスカラーではなくベクトル。つまり、スカラーをベクトル化するのが符号。で、-1をかけたら何故符合が逆転するのかという問いはおかしい。+と−を逆転させる、つまり、変化の方向を逆転させるというのは負の値をかけるという演算の定義なのだ。1を足したら何故増えるの?みたいな問いなのだ。そして符号だけをかえるためには、数値の単位をかえるわけにはいかないから絶対値として1をかけるしかない。-1をかけるとは、飛んできたボールを球速(つまり極小単位当たりの移動量)をかえずに、そのまま打ち返すようなものなのである。というわけで、6÷(-3)=-2というのは、6×(1/3)÷(1)×(-1)=-2であると考えることにする。1/3を単位とする6単位は1を単位とすると2。それを失ったのだから「2減った」(-2)ということである。
と、こんな具合に「デジタル」→「ケタ」→「トポロジカル」→「ベクトル」と、この果てしない妄想もついに終焉をむかえたのである。