過去の日記

2011-05-05 [長年日記]

これが数学でなくて一体何だというのだろう?? [hatena]

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

A÷B=C 余り Dという計算をするときに、A=BならC=1 D=0になるは.. - 人力検索はてな

すみません。数学はわかりません。

うーん、じゃあ何が言いたかったのだろう。


といってもそこはしょうがない。
数学を問題にしてないということは、これは工学上の問題──計算機上の道具としての演算を相手にした話──ということなのでしょう(全然そうは読めませんが)。
0÷0=1 余り 0 というのは実は私はある程度許容範囲内ではあるのです。
計算系に導入して何かメリットがあれば、便宜上そうしてもいいのかもしれない、ぐらいには思います。
そもそもコンピュータの演算上の剰余には、特に負数が混じってくると一意にならないという問題をはらんでいるというのも、そのぐらいには思える一因かもしれません。

負数の割り算が割りきれない

で書きました。
数学上でも、

保障されない簡単な例として、a = 7, b = −3 とすると

7 = (−2)(−3) + 1
7 = (−3)(−3) − 2

と 2 通りに分解することができて、確かに |1| < |−3| も |−2| < |−3| も成り立っている。

先の定義では 「剰余が負でない」 ということを付してこの一意性を保障したが、このような一意性を与える付帯条件のつけ方は一通りではない。

除法 - Wikipedia

となる通り、何らかの恣意的な意味づけをしなければならないことにかわりはないのですから。

同じように、0 ÷ 0 = 1 余り 0 も恣意的な意味づけとして採用することもいいのかもしれません。(最低限 a ÷ b = c 余り d ⇔ a = b × c + d を満たしてはいますし)。


でもそのためには、それがどう役に立つのかという価値を示さなければなりません。
正しいんじゃないの?
では通用しないのです。
主張しなければならないのは、正当性ではなくて有用性です。
その義務は質問者さんの側に課せられるものです。
極端に言うと、除算回路が劇的に早くなるとか、そんな感じのすごい価値/実用性がともなわなければ、はあ? 馬鹿じゃないの? で終わりです*1

そこが分かっていないのだろうし、多分何も考えてないのでしょう。


devide by zero で例外を発生させた方が有益なんじゃないのかな……? という程度の感想ですが、もう少し考えないといけないのかな。
もっともこの程度のことは、計算機工学上誰一人考えたことがない、なんてことはなくて、すでに発案されていて、でもボコボコにされたとか無視されたとかいう事例はきっとあるんだろうな、とも思いますが。


追記
こうやって「0で割る/0の剰余を取ることができる方法」を追加しても、モジュラー算術(計算機工学分野で結構重要)で法を 0 にした時に乗算の逆元がでてこない! 何だよ、やっぱり(モジュラー算術で)除算が定義できるようになったわけじゃないじゃん! 要らなくね。ってことになるのかな。


追記
うん。まあなんていうか「相対性理論は誤りだ!」「じゃあ、原子爆弾や原子力発電は、どういう原理でエネルギーが発生しているんですか?」「そんなもの私の知ったことじゃない!」みたいな雰囲気が漂っているような。

*1 なぜかというと「普通の」数学と対立してるから。