本当に「1/3=0.333…だから1=0.999…」なの?
こんばんは。
今回は数学の話をちょっと。
「『1/3=0.333…だから1=0.999…』っておかしくないですか?」
と尋ねられることが今まで生きてきて複数回ありました。
この疑問に毎回その場で考えて答えるのも面倒なので、
今後のことも考えて簡単な説明をメモしておこうと思います。
答えから先に書くと
『”1/3=0.333…ならば1=0.999…”は正しい』
この問題をきちんと書くと
『1/3=0.333…ならば1=0.999…である』
という命題が正しいのかどうか?という問題になる。
二つに分解して
A:1/3=0.333…
B:1=0.999…
と置きましょう。そうすると
『AならばB』と問題を書き換えることができます。
よく耳にする意見は
『1/3=0.333…は計算したらそうなるから正しい。
だけど両辺に3をかけたら1=0.999…になって右辺は永遠に1にならないからおかしい!』……(※)
というもの。
これをさっきの記号で雑にあらわすと
『Aは正しくて、Aが正しいならBも正しい。でもBは正しくない』
これは論理的な取り違いが起きています。論理学で言う意味論と統語論の違いの様なかんじです。
(※)の「両辺に3をかけたら」というところに注目してみましょう。
C:x=yならばx*3=y*3
これをもちいて
AとCからBが導けます。
つまり、AとCを仮定するとBであるということになります。
Cは公理として扱うのであれば、落とせるので、
『AならばB』が証明できるということです。
これは統語論的な処理です。
それではAやB、AならばBが正しいのかどうか?という問題について考えます。
これは意味論的な問題です。
AならばBは、Cを認めるのであれば正しいです。これは納得できるところだと思います。
でもBは正しくないとみなさんは感じるようです。私もそうです。
意味論的に考えると、AならばBが正しく、Bが間違いであるとすると、必然的にAは正しくないということになります。(真理値から)
次に論理学ではなく数学の視点から考えてみます。
そもそも0.333…という無限小数は何を表しているのでしょうか?
たとえば、級数
Sn=Σ[(1/10)^n]*3
としてn→∞としたときの収束先を0.333…と表しているのだとすれば
0.333…=1/3は確かに正しいです。
このとき、Bについても同様に0.999…=1は正しくなります。
Tn=Σ[(1/10)^n]*9
としてTnの収束先は確かに1です。
無限小数の収束先を表していると解釈するならば、AとBがともに正しいというのが結論になります。
実は0.333…という物が単純に無限級数を表しているのではないかとも思います。
この場合
A’:0.333…→1/3
は正しいですが、
Aは正しくありません。この場合、Bも正しくありませんが、AならばBは正しいままです。
どちらでも良いと言えば良いのですが、無限小数の定義があいまいで、正直どちらと捉えていいのかわかりません。
「Aは正しいけど、Bは間違いだよね?」という疑問は、無限小数の定義をAの時、Bの時で変えてしまっていることに原因があります。Aでは前者、Bでは後者の定義で扱っているように思えます。
なぜならば
「1/3は実際に計算したら0.333…」と述べているところため、無限級数を収束した値と捉えており、
反対に「1=0.999…はおかしい」と述べる際には、だいたいの人が、「どんだけ少数第何位まで数えても、1より小さいじゃん!」と言うので、これは級数として扱っていることになるからです。
私個人としては、『無限少数は無限級数である』説を推したいです。収束の定義的にはそちらの方がすっきりするのではないかなと思うからです。
ただ、どうせ無限小数は単調増加の有界な数列として表せるので収束しますから、『無限小数は収束先の値を表している』説もわからなくはないです。
今回はこんな感じで。