0 で割ってはいけないのはなぜ?
少々古い話になってしまいますが、
Togetter 「小学校には9÷0=0というオレルールがあるらしい。」 http://togetter.com/li/412606
という話題がtwitterのタイムラインで流行っていましたね。
これは、小学校の教員が 「9÷0=0」 と教えていて、
それを知った人たちが「おいおい教員が間違ったことを教えるなよ」と異を唱えていたものと記憶しています。
ところで、そもそもどうして「9÷0=0」では誤りなんでしょうか。いざ説明しようとすると正確には答えられない人が多いのではないでしょうか。
それもそのはず、割り算を習うはずの小学校では多くの場合 「0で割ってはいけない(禁止)」 と教えられます。
基本的に小学校で現れる計算問題には0で割るような問題が現れないことが多いと聞きます。
このエントリでは、「0で割ってはいけないこと」 を数学的に証明したいと思います。
ここで気を付けなければならないことは、ここで言う「数学的な証明」とは何か、ということです。
数学的な証明とは、ある「前提」をおいて、この前提によって論理的に導いた「結果」から、
証明したい「主張」の真偽を示すものです。
数学では、この「前提」のことを公理、「結果」のことを帰結、「主張」のことを命題と呼んでいます。
当然、前提とする公理が異なれば、その帰結は異なり、命題の真偽も異なります。
もし、議論していてお互いの言っている結果(帰結)が異なっている場合、前提(公理)が異なることを疑ってみるべきです。
証明のための準備
さて、それでは証明に移りたいと思いますが、
示したい命題と、前提とする公理、についてまずは数学的に明確にしておく必要があるでしょう。
ここで前提とする公理は、体の公理、等号の公理とそれぞれ呼ばれるものです。
このエントリでは、このセットを前提としますが、文献によっては異なる定義で紹介されている場合があるかもしれません。
その場合は、記号が違っていたり意図する内容が異なっているかもしれませんので、注意が必要です。
体の公理:
集合Fの任意の元a,b, c に対して加法(+)・乗法(×)がそれぞれ定義され、次の公理を満たすとき、集合Fは体を成す。公理1 (交換則): a+b=b+a
公理2 (結合則): (a+b)+c=a+(b+c)
公理3 (零元): Fに 元 0 が存在し、 a+0=a
公理4 (負元): Fの任意の元 aに対し元 (−a)が存在し、 a+(−a)=0
公理5 (交換則): a×b=b×a
公理6 (結合則): (a×b)×c=a×(b×c)
公理7 (単位元): Fに 元 1 が存在し、 a×1=a
公理8 (逆元): 0を除くFの任意の元 aに対し元 (a−1)が存在し、 a×(a−1)=1
公理9 (分配則): a×(b+c)=a×b+a×c
公理10: 0≠1
公理1から4が加法に関するもの、公理5から8までが乗法に関するもの、公理9が加法と乗法をつなぐ関係をそれぞれ定義していることになります。
a+(−b)≡a–b
a×(b−1)≡ab
と定義すれば、減法と除法がそれぞれ定義されますから、
つまるところ、体とは「四則演算が都合よく定義できる集合」とみることができます。
有理数や実数、複素数が体の具体例です。整数は、除算の結果が整数自身に含まれないので体を成しません。
無条件に等号が出ていますが、これも定義が不明ですので、等号の公理として次のように定義しておきます。
等号の公理:
集合F の任意の元 a, b, c, d に対し、等号(=)が定義され、次の公理を満たす。公理11 (反射律): a=a
公理12 (対称律): a=b⟹b=a
公理13 (推移律): a=b∧b=c⟹a=c
公理14: a=b∧c=d⟹a+c=b+d
公理15: a=b∧c=d⟹a×c=b×d
さて、最初の問題である、「9÷0 = 0」という主張は、
命題:
体Fに対し、元9, 0, 0−1が存在し、 9×0−1=0
という命題に置き換えることができます。
ここで、これが成り立たないことを示すためには、9が体に含まれることは自明として、0の逆元(0−1)が存在しないことを証明すればよいことがわかります。
証明にはまず補助定理として、a×0=0 を示しておく必要があります。
この定理の証明からいきましょう。
簡単のため、公理1, 2, 5, 6, 11, 12, 13 は 特に何も言わずに使っていきます。
a × 0 = 0 の証明
補助定理1:
a×0=0
証)
a×0=a×(0+0) (∵体の公理3 より)
=a×0+a×0 (∵体の公理9 より)
等号の公理14より、両辺に −(a×0) を加えると、
(左辺)=a×0+{−(a×0)}
=0 (∵体の公理4 より)
(右辺) =a×0+a×0+{−(a×0)}
=a×0+0 (∵体の公理4 より)
=a×0 (∵体の公理3 より)
したがって、(右辺) = (左辺) から
a×0=0
(証明終わり)
続いて、目的の定理の証明です。
定理1:
Fの元 0 に 乗法の逆元 (0−1) が存在しない
証)
背理法により証明する。
「0 に 乗法の逆元 (0−1) が存在する」と仮定し、
b=0−1(∈F)
とおく。
等号の公理15から、両辺に 0 を乗じると、
(左辺) =b×0=0 (∵補助定理1 より)
(右辺) =0−1×0=1 (∵体の公理8 より)
(左辺) = (右辺) より、
0=1
これは、体の公理10
0≠1
に反する。
したがって、仮定「0 に 乗法の逆元 (0−1) が存在する」の誤りが示され、題意は示された。
(証明終わり)
この定理により、体F に 0 の逆元が存在しないことが示され、0 で 割ることは 体F に定義されないことがわかりました。
このことは、加減乗除が定義され上記の公理を満たすような代数体に対しては、
0割りが定義できない数学的な理由になっています。
つまり、「0で割ってはいけない(禁止)」ではなく「0で割ることは定義できない」ということです。
0 ≠ 1 の意味
上記の証明において、 体の公理10:
0≠1
がキーになっていたと思います。
この公理は何を意味しているのでしょうか。
逆に言えば、0=1 だと何が起こるのでしょう。
そもそも, 体の公理には {0,1} は明示的に記述されていますが、2,3,4,… 等の自然数はどうして存在するといえるのでしょう。
2 以降の自然数 は、体Fの元である 1に加法が定義できることから次のように定義できます。
2≡1+1
3≡2+1
4≡3+1
しかしながら、このままでは 2≠1 であるかどうかわかりません。すなわち、2,3,4,… を定義したところで、
{0,1} の言い換えになっているだけかもしれないのです。
任意の自然数 n が 0 や 1 と異なることを積極的に示しているのが、何を隠そう 0≠1 なのです。
たとえば、 0=1 であれば、
2=1+1=0+0 (∵ 0=1)
=0 (∵体の公理3)
となり、 2 = 0 = 1 となってしまいます。
これは任意の自然数に対して成り立ちますから、結局集合元は {0} の 1 つだけになってしまいます。
このような集合 {0} も体を成すことが知られていて、これを自明な体と呼びます。
一方、 0 ≠ 1 であれば、
2=1+1≠1+0 (∵ 0≠1)
=1 (∵体の公理3)
∴ 2≠1
2=1+1≠0+0 (∵ 0≠1)
=0 (∵体の公理3)
∴ 2≠0
0≠1 によって F から 自明な体 を除くことができ、
私たちがよく知っている加減乗除を定義できる普通の体を表現することができるのです。
9 ÷ 0 = ∞?
ここで、「9÷0 = 0」 のよくある反論 「9÷0 = ∞」 について考えてみましょう。
まず、はっきりと言っておくと、「9÷0 = 0」 に対する 「9÷0 = ∞ だから間違い」 という反論はナンセンスです。
これは、おそらく
limx→+09x=+∞
と
90=∞
を混同していることから出た誤りと考えられます。
大学で「イプシロン・デルタ」をきちんと学んだ人なら、上記の2式がまったく異なることを表した式である点に気づくことでしょう。
よくわからない方は、解析学の本を読んでみるといいでしょう。
また、後者の式に関しては、数学的にも誤りです。
これが誤りであることは定理1の証明と同じ流れで示すことができます。
9×0−1=∞(∈F)
であると定義します。仮定します(ほんとはそんな数存在しない)。
両辺に 0 を乗じると、
9×0−1×0=∞×0
∴9=0 (∵体の公理8, 補助定理1)
となり, 9≠0 と矛盾します。
したがって、このような方法で、0 の除算や∞という数をFに定義することはできないのです。
逆元 0−1 がもし存在したと仮定して、90=0 という命題も次のように矛盾します。
9×0−1=0
であると定義します。仮定します(ほんとはそんな関係存在しない)。
両辺に 0 を乗じると、
9×0−1×0=0×0
∴9=0 (∵体の公理8, 補助定理1)
となり, 9≠0 と矛盾。
いずれにしても、先に示した 「0で割ることはできない」 の解決法にはならないことがわかります。
教育の問題
この問題は、「9÷0の数学的な意味」という問題と、それを説明する教育的な問題の2つを含んだ、複合的な問題です。
私自身は教育関係者ではありませんので、教育的な問題については偉そうにいうことはできません。
ただ、上で示した証明の流れを考えると、「0で割ってわいけない」理由を体の公理との矛盾から説明するのは、高校生にも難しいかもしれません。
ましてや、割り算をはじめて習う小学校でそれを教えることは簡単ではないでしょう。
ただ、計算自体は高校で習う内容を超えていませんので、
一回ぐらい一連の流れを追ってみて、誤った認識をしないように努めたいものです。
(せっかくtwitterで話題になったことですし)
まとめ
「0 で 割ってはいけない(禁止)」のではなく「0で割ることは定義できない」。
(理由: 0の逆元の存在は体の公理の帰結に矛盾するから。0の逆元が存在しないと0で割ることは定義できない)
ゼロ除算といえば、プログラムを書いている人は一度は遭遇する、出会いたくないバグを思い出しますね。
0で割ることが数学的に定義できないため、もちろんプログラム上でも定義できませんから、
間違えて0で割るようなソースコードを書いてしまうと、原因究明の難しいバグになってしまうのです。
Wikipedia の「ゼロ除算」 (http://ja.wikipedia.org/wiki/%E3%82%BC%E3%83%AD%E9%99%A4%E7%AE%97) の項目によると、
アメリカ軍の船でさえ、ゼロ除算のバグで止まったりするとか。
ゼロ除算怖い・・・((((;゜Д゜)))ガクガクブルブル
焼酎と合わない物を探していて 「割ってはいけないもの」 を探していたらトップに出てきたので、拝読しました。
現在の小学校では、「0で割ってはいけない」と教える事にびっくりしました。
果ては、「9÷0=0」と真顔で教える先生までいるとは。。。
また、失礼とは思いますが、“「0で割ってはいけないこと」 を数学的に証明” と仰せになれれている事に違和感も覚えました。
“「手続き」や「ルール」を「証明する」”という表現に対してです。
昭和30年代生まれの私は「0で割ってはいけない」という事を、電卓で教えられました。
コンピュータ関係に興味を持ち、その分野で仕事をしていますので、「手続き上、0で割ってはいけない」という理解でおりました。
コンピュータ処理上、「いけない」というより、「それ以上先に進めないので、エラーにする」という手続きであるという事です。
昔の、割り算を覚えたばかりの小学生は、「0で割る」という計算を一度は頭の中に思い浮かべ、明確な答えを出す思考能力がありました。
「5÷0 = ?」 。。。。。。
0に何を掛けたら5になるのか? 「そんな数はない」、「答えが無い」
「0÷0 = ?」 。。。。。。
0に何を掛けたら0になるのか? 「何でもいい」、「決められない」
上記の答えを、習ったばかりの考え方で純粋に考え、それぞれ、異なる回答がきちんと自然にできていました。
中学校で代数を習うあたりから「0で割るな」と教わった気がします。
大人になると「÷0」を見た途端に、思考停止するのは 何となく理解できますが、小学校から思考停止を強制しているとは思いませんでした。
これも、ゆとり教育とやらの弊害なのでしょうね。
突然の投稿、ご容赦ください。
S Koshikaさん、コメントありがとうございます!
なかなか読者の声をいただけることがありませんので、こういったご意見はこちらとしても喜ばしい限りです。
ご指摘の通り、“「0で割ってはいけないこと」 を数学的に証明” は表現としてふさわしくないかもしれません。
「手続きを証明する」というのは、たしかに日本語としてもおかしいですからね。
結局のところ、本文で主張したいことは「0の逆元を体系に含めてしまうと、どこかで必ず矛盾を生じてしまう」ということであって、それ以上でもそれ以下でもありません。
不適切な言葉選び、申し訳ありません。ご指摘ありがとうございます。
思考停止の強制、たしかにそうかもしれません。
ただ、私も子供の頃に「0で割ってはいけない」と頭ごなしにいわれたような気もしますので、必ずしもゆとりが原因とは限らないと思います(私自身はゆとりより少し上の年代です)。
S Koshikaさんのおっしゃる通り、たとえ正しい答えでなくとも、「0で割ってはいけない理由」を自分なりに考えてみることは、私も非常に重要なことだと思います。
残念なことに(twitterなどの反応を見ている限りでは)大人であっても「0で割ることのできない理由」を1度も考えたことがなかったりするようです。。。
きっと自分が考えたことがないから、無意識に子供にもそれを押し付けてしまうのでしょうね。
自分がそうなってしまわないように、気をつけたいものです。
tsujimotter (管理人)