なぜゼロで割ってはいけないのか
算数の授業で割り算を習う時に「ゼロで割ってはいけない」と習います。 その時は深く考えずにそういうもんだと思いました。
そして時は流れてプログラムを習った頃、プログラムがゼロで割ってエラーを出しました。 なるほどプログラムの世界でもゼロで割ってはいけないようです。
ゼロで割ってはいけないとはよく言われますが、なぜかはよく分かりませんよね。 ゼロで割ってはいけない理由は、ゼロで割るという行為がよく分からない事だからです。
ゼロで割る意味を考える
色々な割り算を文章に落とし込んでみます。 文章に落とし込めば、ゼロで割るというのがどういうことか分かるかもしれません。
「4 ÷ 2 = 2」は「4個のりんごを2人で分ければ1人2個」という計算です。 これは最も基本的な割り算で、まあそのままですね。
割る数が負数の場合はどうでしょうか。 「4 ÷ -2 = -2」は「4個のりんごを2人に渡せば1人に2個ずつ渡す」といったところでしょうか。 これも自然ですよね。
割る数が小数の場合はどうでしょうか。 「4 ÷ 0.1 = 40」を考えると「雷に当たったあなたは1/10のミニサイズとなり、4個のりんごはミニサイズのあなたにとって40個分の量」といった感じでしょうか。 ちょっと無茶苦茶言いましたが、一応話は通ります。
これがゼロ除算になるとどうでしょうか。 「4 ÷ 0 = ?」4個のりんごを0人で分けると…0人で分けるってどういうことでしょうか?
4個のりんごを1人で分ければ4個です。では0人で分けても4個のまま? いやしかし0.1人で分けるとりんごは40個に増えました。これが0.01人で分けるなら400個となり、0に近づくほどに数は増えます。 ならば0人で分ければ限りなく大きな数字になるのでしょうか?
この限りなく大きな数字の状態を「無限大」と言います。 たった4個のりんごが無限大になってしまいました。というより元が4個だろうが4億個だろうが同じ無限大になってしまいます。 無限大は限りなく沢山であることを示す状態で、何を足しても引いてもかけても割っても無限大のままというよく分からない状態です。 元の数字に関係なく無限大を作ってしまうゼロ除算は、よく分からない計算なのです。
代数で考えるゼロ除算の危険性
x=0 の時、0を何回かけても0なので x=x*x が成り立ちます。
この時両辺をxで割ると 1=x です。
x=0 なので代入すると 1=0 です。何だかおかしいですね。
いつの間にか0が1になってしまいました。 こうなると後は両辺に好きな数をかければ「0=全ての数」になってしまいますね。
なぜこんなことが起こったのかと言えば、ゼロ除算をしたからです。 ゼロ除算はこのように計算の根底を覆す危険な行為だから算数でことある毎に「xがゼロでない場合」とか注釈が付くのです。
プログラムなどでもゼロ除算はできないため、言語によってゼロ除算しようとするとエラーにして止めたり、ゼロ除算時の答えを特定の値として用意したりしています。 まともに計算することは不可能で、かつてアメリカの巡洋艦のエンジン制御システムがゼロ除算してダウンし、回復するまでの2時間半の間を海上で漂流する羽目になったなんて話もあります。
ゼロで割った瞬間に計算が破たんしてしまうので、計算する時はゼロで割ってはいけない事になっています。 ゼロで割ると一体どうなるのか分かりませんが、1個のりんごを無限に増やすことができるのかもしれません。 ゼロ除算の真の意味を知った時、あなたは高次の次元へ到達できるのかもしれませんね。