この記事では、最近話題になっている
「$1=0.999\cdots$ って本当に正しいの?」
という疑問について掘り下げて考えたいと思います。
といっても、厳密な議論で証明することが目標ではなく、「直感的に理解したい」というモチベーションで記事を作っています。
そのため、厳密な証明を期待している方や、既に「自明じゃん」と感じている人にはこの記事はオススメできないことをはじめにお断りします。
一方で、この疑問を感じている人は少なくないようです。 Wikipediaの「$0.999\cdots$」の記事 の概要にも、次のような記述があります。
(Wikipediaより引用)
等式 $0.999\cdots = 1$ は数学者に長く受け入れられ、一般の算数・数学教育の一部であったにも拘らず、これを十分直観に反するものと見なして、疑念や拒絶反応を示す学徒もいる。このような懐疑論は、「この等式を彼らに納得させることがいかに難しいか」が数学教育の様々な研究の主題となることに正当性を与える程度に当たり前に存在している。
ときには、この疑問を表に出すことによって誰かに笑われることがあるかもしれません。しかし、これは人によってはそんなに簡単に受け入れられる概念ではないと私は思います。本当は納得していないのにわかったフリをする方がよほど恥ずかしいことだと思います。
まず、考える対象となる「$0.999\cdots$」ですが、この記事では次のような式変形をしたときの最後の式が正しいかどうかについて議論することとします
$\dfrac{1}{3}=0.333\cdots$
両辺を3倍して
$\dfrac{1}{3}\times3=0.333\cdots\times3$
したがって
$1=0.999\cdots$
↑↑↑本当に正しいの?
まずは、この疑問に対してしばしば提示される、よくある説明をいくつか見てみましょう。
これらの説明のいずれかで十分納得できる方は、その後の記事は読まなくても大丈夫だと思いますが、騙されたような気がする、モヤモヤすると思う方は、後半の記事までお付き合いください。
上記の問題1の分数を使った式変形には何もおかしなところはない。
したがって結論の
$1=0.999\cdots$
は正しい。
$1$ から $0.999\cdots$ を引き算すると
$1-0.999\cdots=0.000\cdots$
となりずっと $0$ が続くから、これは$0$であると考えられる。
したがって
$1=0.999\cdots$
$x=0.999\cdots$
$10x=9.999\cdots$
$10x-x=9.999\cdots-0.999\cdots$
$9x=9$
$x=1$
$\dfrac{1}{3}$ が無限小数になるのは十進法を使っているせいである。
例えば九進法で表記すれば
$\dfrac{1}{3}=0.3$
$\dfrac{1}{3}\times 3=0.3\times 3$
$1=1$
となり、何もおかしなところはない。
三進法でも同じようにできます。
無限小数を表すとき、「$\cdots$」の記号は次のように極限値の意味で定義されている。
${\displaystyle
0.999\cdots=\lim_{n\to\infty}0.\underbrace{99\cdots9}_{n個}
}$
数列が「ある数」に限りなく近づくとき、その「ある数」のことを極限値といい、この場合その「ある数」は$1$である。
${\displaystyle \lim_{n\to\infty}0.\underbrace{99\cdots9}_{n個}=1 }$
したがって、定義より明らかに
${\displaystyle 0.999\cdots=1 }$
右辺を等比級数で表現するパターンもありますが、意味はほぼ同じですね。
大学レベルの数学になりますが、デデキント切断やコーシー列を使って実数を構成することにより、$1=0.999\cdots$を示すことができます。
この方法は厳密な方法ではありますが、必要以上に難解であり、この記事の趣旨に合わないので証明は省略します。
気になる方は
Wikipediaの「$0.999\cdots$」の記事
などを参考としてください。
上記の証明で納得できる方も多いと思います。
一方で、それでもなお「なにか騙されている気がする」とモヤモヤしている人も少なくないと思います。
私自身も学生の間はずっとモヤモヤしていました。
書籍「数学ガール~ゲーデルの不完全性定理~」には上記の「定義(極限値)による証明」と同様の証明方法が紹介されているのですが、社会人になってから初めてそれを読んだときも、「確かにそう定義すれば同値にはなるけど、そもそもそのように定義すること自体が結論ありきでズルいような気がする」とモヤモヤ、言い方を変えると違和感を覚えていました。
今ではその違和感はなくなりましたが、では、その違和感の正体は一体何だったのでしょうか。
私の考えでは、違和感の原因は主に次の$3$点だったと思います。
① 「数」と「数字」の混同
② 「数」と「数字」が一対一対応しているという誤解
③ $0.999\cdots$ が「$1$より小さいなんらかの数」を表しているという誤解
どういう意味かはこれから説明します。
私たちは日常生活で数と数字の違いはほとんど意識していないと思います。しかし、この問題を考える場合には、数と数字を異なるモノであると認識することが重要になります。
「数」というのは、記号化される前の抽象化された概念(イデア)です。
そして、「数字」というのは、「数」の象徴(シンボル)として記号化されたものです。
「数」は普遍的なものですが、「数字」にはいろいろな表記方法があります。
たとえば、「●●●●」の中に「●」がいくつあるかを「数字」で表す場合、一般的には「$4$」と表記しますが、時計の文字盤では「$IV$」とローマ数字で表記しているものもありますね。ローマ数字で$4$を意味する表記には「$IIII$」というものもあり、こちらを採用している文字盤も珍しくありません。
このように、同じ数を表すのに、複数の方法があることがあり得る、ということをまず受け入れる必要があります。
「数と数字は違う」ことを強く意識しましょう。
ローマ数字の場合、$4$ を表す表記方法が「$IV$」と「$IIII$」の$2$通りありました。
実は、$1$を小数で表す場合の表記方法も「$1$」と「$0.999\cdots$」の$2$通りある、と考えても何も問題はないのです。ある「数」に対応する小数表記は$1$とおりであるべき、つまり、「数」と「数字」が一対一対応するべき、と無意識に考えてしまってはいないでしょうか。
まず、それが先入観にすぎず、表記方法が複数あってもよいのだ、ということを受け入れましょう。
なんなら、「$1.0$」や「$1.00$」や「$1.000\cdots$」といった表記も含めて、「$1$を小数で表す方法は何通りもある」「無限通りある」と考えても、何も問題ないのです。
ここで、もう一度問題の式変形を見てみましょう。
$\dfrac{1}{3}=0.333\cdots$
両辺を3倍して
$\dfrac{1}{3}\times3=0.333\cdots\times3$
したがって
$1=0.999\cdots$
「数と数字は違う」と念じながら見てみると、途中の式変形は形式的に行っているだけにすぎず、 $0.999\cdots$ という「数字」に対応する「数」が一体なんなのか、どうも怪しい気がしてきませんか?
$0.999\cdots$という「数字」に対応する「数」がなんなのかについてさらに考えます。
よくわからないのなら、いい感じになるように対応させてみればいいのです。
では、どんな「数」を対応させると、いい感じにできるでしょうか。
まず、$0.999\cdots$ が何らかの「数」に対応しているならば、
$a=1-0.999\cdots$
なる$a$を考えると、$a$ もまた何らかの「数」に対応するはずです。
$a\ge0$ であることは間違いなさそうです。
ここで、$a\ne0$ と仮定してみましょう。
$a>0$ですから、十分大きな自然数 $N$ をもってきて
$a>10^{-N}$
の不等式が成り立つようにすることができます。
ところが、
${\displaystyle 0.\underbrace{99\cdots9}_{N個} =1-10^{-N} }$
ですから、
${\displaystyle \begin{align} 1-a&=0.999\cdots\\ &>0.\underbrace{99\cdots9}_{N個}\\ &=1-10^{-N}\\ &>1-a \end{align} }$
となり、$1-a>1-a$ となってしまいます。これは矛盾です。
これはまずいですね。
一方、$a=0$ 、すなわち「$0.999\cdots=1$である」と考えた場合は、特に不都合はなさそうです。
こうして、
「式変形により形式的にあらわれた「数字」の$0.999\cdots$ に対応させるべき「数」は $1$ しか考えられない」
という結論に至りました。
途中、数式が思ったより多めになってしまいましたが、「直感的に理解したい」という目標は一応達成できたと思っています。
数学が得意な方であれば、数と数字の違いなど自明で、この記事は非常に冗長にみえたことだろうと思います。
しかし、誰もがそのように考えることができるわけではないと思います。
「一旦わかってしまうと、わからなかったときの気持ちがわからなくなる」ということはあると思いますが、わからない人の気持ちを汲み取ることも大事にしたいですね。
ところで、数学は自由です。標準的な数体系である実数体に対して、通常と異なる方法で数を構成し、$0.999\cdots$ という表記が意味を持つ、実数とは別の数体系を定義することを考えるという分野もあるそうです。そのような数体系においては前半部の証明などはその体系における記述として解釈し直さなければならなくなります。
はたして、「$1=0.999\cdots$」は本当に自明なんでしょうかね……?