過去の日記

2011-05-08 [長年日記]

数学の話をしよう [hatena]

先頭追記。
えー。"浮動小数点演算 結合則"という検索語でのランクが高いようなのですが、それは別のエントリでした。

1000speakers@Sendai

ほかにも、"掛け算 交換法則 実数 証明"なんかから来た人もいました。

メタ数学explorer

もいいかも。でも"公理的集合論を出発点とした数学の構築"という時点でちんぷんかんぷんな人にはお勧めできません。
もちろん「実数領域での掛け算が交換法則を満たすこと」は証明可能です。でも、専門でない人(私も含まれます)には「実数領域での掛け算」どころか、「実数の定義」でさえ理解できないほど難しい、というのが正直なところです。
追記終わり。


きっかけは、

A÷B=C 余り Dという計算をするときに、A=BならC=1 D=0になるはずですよね?
0÷0=1 余り 0という計算は間違っていますか?
0×1+0=0で検算してもあっています。
http://q.hatena.ne.jp/1304487720

です。
公理系を持ち出したりするような「数学を数学する」というほど高度ではない。でも算数の話ではなくて、数学の話をしようと思います。
(したがって、このお話は質問者が望むものではないので、これは、はてなの質問に対する回答ではありません)


割り算とは何か。
整数を整数で割る。有理数を有理数で割る。この辺までは算数の範囲でまぁ、大体理解できそうです。
でも、実数で実数を割る、ということはどういうことか? 例えば何かの数をπで割るってどういうこと?


そこで、割り算を「乗算の逆演算」として定義し直します。
逆演算とは何か。
演算に対する逆元を定義することです。

まずは、演算記号を\(*\) 、演算における単位元を\(e\) と表記します。
任意の元*1\(a\) に対して、\(a~*~e~=~e~*~a~=~a\) を満たす元が単位元です。
「普通」の乗算では1がこれにあたりますね。

逆元とは何か。
ある元\(x\) と\(y\) で、\(x~*~y~=~y~*~x~=~e\) の関係にある時、お互い逆元と呼びます。\(x\) は\(y\) の(演算\(*\) における)逆元で、\(y\) もまた\(x\) の逆元です。

割り算は、乗算に対する逆元をかける、ということで定義します。
ある数\(a\) で割るということは、\(a\) の逆元をかけるということになるわけです。

そういうわけで、ある元に逆元が存在するかどうか? というのは非常に重要なお話です。


それはひとまず置いておいて、今度は零元*2の話をしましょう。
任意の元\(s\) に対して、\(s~*~z~=~z~*~s~=~z\) を満たす元が零元です。
「普通」の乗算では0がこれにあたりますね。


0割りが許されない理由は、これら逆元(の存在性)と零元の関係を見ると分かります。

0で割るということは、0に逆元が存在してその逆元をかける、ということになります。
0に逆元が存在する必要が──つまり\(a~*~0~=~0~*~a~=~1\) である\(a\) が存在する必要があります。
ところが、\(s~*~0~=~0~*~s~=~0\) という性質が0にはあります*3。というか、この性質こそが重要です。
ここが矛盾します。

0割りを許すというのは、つまりこういうことです。
\(s~*~0~=~0~*~s~=~0\) という性質をあきらめて、\(a~*~0~=~0~*~a~=~1\) という数\(a\) が存在することにしよう。そんな数\(a\) を、数の集合に新たに追加しよう(ここからは、そんな数\(a\) のことを、0の逆元とか、\(0^{-1}\) とか書きます。)
こう言っているのと同じなんです。


で、これが大問題なわけで、「普通」の数学ではそんな数を追加するなんて到底認められない。
\(s~*~0~=~0~*~s~=~0\) という性質をあきらめることをあきらめているのです。
「普通」の数学では、割り算の時に「ただし\(x\neq~0\) とする」という但し書きが頻繁にでてきます。面倒です。でも仕方がありません。


え?
\(0^{-1}\) が存在することにするのが面倒なのは分かる。数直線とかそういう道具立てに問題がありそうだし、大体そんな数は想像できない。でも、\(s~*~0~=~0~*~s~=~0\) という性質をあきらめるのがなんでそんなに重要なのか?
ですって?

……そうですねぇ。パッと思いつくのは、こんなものです。


\(xyz\neq~0\) であるとすれば、\(x\neq~0~\land~y\neq~0~\land~z\neq~0\) と言えますね?
これができなくなります。
\(x\) が\(0\) で、\(y\) が\(0^{-1}\) 、という可能性が出てくるからです。


数式を変形していきます。ある項が\(a~\times~(b~-~b)\) という形になりました。これで\(a~\times~0\) となってこの項を消すことができますね?
これができなくなります。
\(a\) が\(0^{-1}\) 、という可能性があるからです。\(a~\times~0\) の項を消すことはできません。


ああ、ここまで考えてきて、やっと、なんとなく理解できた気がします。
0割を許すと「ただし\(x\neq~0\) とする」という但し書きが消えて一見便利になるように思えます。
でも、実は、結局「ただし\(x\neq~0^{-1}\) とする」という但し書きが比べものにならないほどやたら頻繁に出てくるだけになってしまうんじゃないでしょうか?
本当のところはわかりません。
でも私としてはここで納得できてしまいました。
おしまい。


(数式表示の関係で読みにくくなっていますがご容赦を)


追記 2011/05/09
あ、なんかもっと大変なことに気がついてしまった。
\((0\times~0)~\times~0^{-1}=0~\times~0^{-1}~=~1\)
\(0~\times~(0~\times~0^{-1})=0~\times~1~=~0\)
結合法則が成立しないじゃないですか。

一般に\((xy)z=x(yz)\) が成立しないのだから、括弧を外して書くことができないとか、なんて使いにくい数学になるんでしょう!
\((x+y)^3\) とかもう書けないんじゃないですか? (追記:ここ分かりにくかったので補足。上の「一般に\((xy)z=x(yz)\) が成立しない」の\(x,y,z\) を\((x+y)\) に置き換えると分かる。\(((x+y)(x+y))(x+y)=(x+y)((x+y))(x+y))\) が成立しない(するとは限らない)ので、左から計算するか右から計算するかの括弧を常に書かなければならなくなり、\((x+y)^3\) とは書けないんじゃないか? ということ。↓で展開してみているのはそれを確認するため。)
気になるので書いてみようっと。
\(((x+y)(x+y))(x+y)=(x^2+2(xy)+y^2)(x+y)=(x^2)x+(x^2)y+(2(xy))x+(2(xy))y+(y^2)x+(y^2)y\)
\((x+y)((x+y))(x+y))=(x+y)(x^2+2(xy)+y^2)=x(x^2)+x(2(xy))+x(y^2)+y(x^2)+y(2(xy))+y(y^2)\)
うん。\((x^2)y+(2(xy))x=3x^2y\) ってできないじゃないか! もうやだ……。

\((2(xy))x\) なんかの"2"は\(0^{-1}\) が紛れ込む余地がないので括弧の外に出てくるような気もするし、\(x(x^2)=(x^2)x=x^3\) あたりは成立するような気もする。

あまり考えずに\(0\times~0=0\) にしてしまうのがまずいのか……。
いずれにせよ、これは私の手に負えません。

やっぱり、これは《使えない道具》でしょう。

でも、この質問者さん、\(0^{-1}\) の存在を仮定した時に\(0\times~0=0\) とすると、結合法則が成立しなくなるという可能性に自分でたどり着いてるんですよ。
これはちゃんと自分で数式をいじっている証拠です(いじり方が正しいとは言ってません)。

ここから、結合法則が通用しなくなるってことに行かないあたりが何とも。
気がついていてペテンを仕掛けてるのだとしたら、あの有名な1=0の証明なんかよりも遙かに高度ですね。:-P

*1 集合の話から始めないのは手抜きですね。

*2 零元という用語は半群に限って使われる用語らしいです。吸収元という用語の方が精確な様ですが、ここでは零元とします。適当ですね。

*3 この辺から、"任意の元sに対して"とか"となる元aが存在する"とかいう表現が消えていきます。ひどいですね。