0.999...
数学において"0.999…"は、小数点の後に無限に"9"が続く循環十進小数である。
実数として "0.999…" と"1"は等しくなることを示すことができる(ただし、0.9999など途中で終了する小数は1と等しいと言えない)。この証明は、実数論の展開・背景にある仮定・歴史的文脈・対象となる聞き手などに応じて、多様な数学的厳密性に基づいた定式化がある。
循環する無限小数一般に言えることだが、0.999… の末尾の … は省略記号であり、続く桁も 9 であることを示す。省略記号の前の 9 の個数はいくつでもよく、0.99999… のように書いてもよい。あるいは循環節を明確にするために 0.9、0.(9)、0.. などとも表記される。
一般に、ある数を無限小数で表すことも有限小数で表すこともできる。本稿で示されるように 0.999… と 1 は等価性であるから、例えば 8.32 は 8.31999… と書いても同じ数を表す。十進数を例に採ったが、数が一意に表示されないことは別の底の位取り記数法でも生じ、また小数表示以外でも同様に起こり得る。
0.999… と 1 の等価性は、実数の体系(これは解析学では最も一般的に用いられる体系である)に 0 でない無限小が存在しないことと深く関係している。一方、超実数の体系のように 0 でない無限小を含む別の数体系もある。そのような体系の大半は、標準的な解釈の下で式 0.999… の値は 1 に等しくなるが、一部の体系においては記号 "0.999…" に別の解釈を与えて 1 よりも無限小だけ小さいようにすることができる。
算数・数学教育において、0.999… = 1 という関係(または類似の関係)が正しいことを教えることは一つの課題となっている。個別には例えば、1 のような簡単な数に対しても別の表示方法(この場合、0.999…)があることや、0.999… が数列の極限の簡便な記法であること、極限の値は必ずしも元の数列に含まれないこと、また極限という概念そのものの理解が難しいことなどが挙げられる。
0.999… という実数を明確にとらえるには、やはり小数点以下の位がすべて 9 であることを利用する。位取り記数法で表された有限小数における"位ごとの四則演算"が無限小数に対しても適用できる、と見なすと、0.999… = 1 を初等的に導くことができる。
1 を小数表示すると、小数点以下の位は全て 3 であることを利用する。1 は 1 ÷ 3 の商であり、割り算の筆算により、循環小数 0.333… となる。ここで 3 は無限に続く。この小数点以下の各位は 3 倍するといずれも 9 となることから、有限小数のときと同様に各位への一斉な掛け算が可能とみなせば、無限小数 0.333… を 3 倍すると0.999… に等しい。一方、1 × 3 = 1 である。従って 0.999… = 1 である。同様な別証明として、1 = 0.111… の両辺に 9 を掛けることでもできる。
\begin{align}
0.333\dots &= \frac{1}{3} \\
3 \times 0.333\dots &= 3 \times \frac{1}{3} \\
\therefore 0.999\dots &= 1
\end{align}
十進法表示の有限小数に 10 を掛けると、数字は変化することなく、小数点が1つ右に移動する。このことが無限小数に対しても成り立つと見なせば、0.999… × 10 = 9.999… であり、これはもとの数に比べて 9 大きい。引き算が位ごとに扱えることが無限小数に対しても成り立つと見なせば、9.999… − 0.999… = 9.000… である。ところが、小数点以下に無数に続く 0 は数を変化させないので、この差はまさしく 9 に等しい。問題の小数 0.999… を c と置くと、10c − c = 9 であり、この方程式を解くと、c = 1 が得られ、証明が完了する。つまり、導出は以下のようになる。
\begin{align}
c &=0.999\cdots \\
10c &=9.999\cdots \\
10c-c &=9.999\cdots -0.999\cdots \\
9c &=9 \\
c &=1
\end{align}
この位取り記数法の性質を利用した証明は他の有限小数(0.25 と 0.24999… など)にも適用できる。
以上の2つの証明で用いた、無数の桁に対する位ごとの操作(つまり、掛け算や引き算)を一斉に行う(つまり…の部分に行う)ことは、厳密性に欠け、その正当性が明らかではない。有限小数に関しては、この過程は実数の計算法則にのみ依存している。この操作が無限小数にも適用できることを証明するためには、次節 #解析的な証明 に述べる実解析の手法を必要とする。
日本の数学教育においては、高校数学の数学Iで循環小数の足し算・引き算・10倍が公理として採用されているため、上記の代数的な操作は高校数学の範囲内では正しい証明とされる。
0.999… という小数点以下の位に無数の 9 を加えていくという定義自体が解析的である。これが 1 に等しいことを厳密に証明するには、実解析の手法を必要とする。0.999… という無限小数を正確にとらえるには、小数部分の位が無数に並ぶことを明確に定義し直すことが必要となる。
0.999… が 1 に等しいことを証明するには、それらの差が 0 であることを証明すればよい。その分、無数に並ぶ 9 についての定義はぼやけるが、初等的かつ解析的に導くことができる。
\lim_{n\to\infty} 1-0.\underbrace{99\cdots 9}_n \\
&=\lim_{n\to\infty} 1-(1-0.\underbrace{00\cdots 1}_n ) \\
&=\lim_{n\to\infty} 0.\underbrace{ 00\cdots 1 }_n \\
&=\lim_{n\to\infty} \left\{\left( \frac{1}{10} \right )^n \right\} \\
&=0 \qquad \qquad
\end{align}
なお、この証明では、最後に
\lim_{n\to\infty} \left( \frac{1}{10} \right)^n =0
であることを証明抜きで用いている。
これを証明するためには、実解析における実数の連続性(アルキメデスの性質)が必要となる。
0.999…、一般には無限小数(小数点以下に無数に位が並ぶ実数)の明確な定義を議論し直すために、定式化する。0.999… を考えるのに、整数部分は1桁だけ考えれば十分であり、負の数は考えなくてよいので、考察するべき小数表示は
a_0 .a_1 a_2 a_3 \cdots
の形である。小数部分は整数部分と違って有限の桁数に制限されない。これは基数 10 の位取り記数法であるから、例えば a1 の単位は a2 の単位の 10 倍、a3 の単位は a2 の単位の 1 倍である。
小数展開の一般的な定義としては、おそらく級数(無限数列の総和)として定義することである。つまり
a_0 .a_1 a_2 a_3 \cdots =a_0 +a_1 \left(\frac{1}{10} \right)+a_2 \left(\frac{1}{10} \right)^2 +a_3 \left(\frac{1}{10} \right)^3 +\cdots
と表される。
ここで、0.999… の小数部分の計算には等比級数の公式:
r < 1 のとき a+ar+ar^2 +\cdots =\frac{a}{1-r}
を適用することが可能である。
0.999… は、上式の左辺で初項 a = 9, 公比 r = 1 としたものであるから、この公式より
0.999\cdots =9\left(\frac{1}{10} \right)+9\left(\frac{1}{10} \right)^2 +9\left(\frac{1}{10} \right)^3 +\cdots
=\frac{9(\tfrac{1}{10} )}{1-\tfrac{1}{10} =1
と簡単に問題を解決することができる。この証明は早くて1770年のレオンハルト・オイラーによる Elements of Algebra において(実際には 9.999… = 10 の証明としてだが)見られる。
等比級数の公式自体はオイラー以前の成果であるが、18世紀まではその導出がいずれも項別演算を証明なしで行われていた。1811年になってやっと、Bonnycastle の教科書 An Introduction to Algebra で等比級数に関する議論を行うことで 0.999… に関する項別操作を正当化している。
19世紀には、それまでの自由すぎる無限和の計算に対する反動として、「級数はその部分和の極限として定義される」という、現在の数学でも用いられている定義が生み出された。このころの証明に基づいた微積分学や解析学の入門書においては、関連する定理を証明することによりこの等比級数もはっきりと計算されている。
数列 {xn}  において、番号 n を限りなく進ませると距離 !xn − x! が 0 に近づくときに、数列 {xn}  の極限が x であると定義される。等式 0.999… = 1 自身は以下のように極限として表すことにより証明される。
0.999\cdots = \lim_{n\to\infty} 0.\underbrace{99\cdots 9}_n
= \lim_{n\to\infty} \textstyle\sum\limits_{k=1}^n \displaystyle\frac{9}{10^k} =\lim_{n\to\infty} \left( 1-\frac{1}{10^n} \right)
=1-\lim_{n\to\infty} \frac{1}{10^n} =1
最後の等号 (\lim_{n\to\infty} \tfrac{1}{10^n} =0) は、実数の連続性の一つであるアルキメデスの性質を用いて証明される。このような極限を基にした 0.999… の説明はしばしば、分かりやすいが不正確な言葉によって説明されている。例えば、1846年の教科書 The University Arithmetic は「0.999… と無限に続く数は 1 である。なぜなら 9 を積み重ねるたびにその値は 1 に近づくからである」と説明しており、1895年の Arithmetic for Schools は「9 を十分多く用いれば、0.999… と 1 の距離は驚くほど小さい値である」と説明している。直観に頼らず、はっきりとした理解を得るために、コーシーやボルツァーノらにより微積分を厳密な理論で再構築する流れが生まれた。1860年代にワイエルシュトラスにより ε-δ論法が考案され、無限の概念を不等式の任意性に置き換えることにより、項別操作の可能性などについても説明がついていくこととなる。
無限小数の小数部分を級数として直接計算する前述の導出に対して、それとは別に、もう一つの方法は、無限小数が取らない値の範囲を排除していくという方法である。
実数 x は閉区間 [0, 10](すなわち 0 以上 10 以下)に属するとし、この区間 [0, 10] を一の位ごとの 10 個の区間 [0, 1], [1, 2], [2, 3], …, [9, 10] に分割(端点のみで重なる)する。実数 x はこのうちの少なくとも1つに属し、その区間の下限、例えば x が区間 [1, 2] に属するときには "1" を記録する。次に、属している区間 [1, 2] を小数第一位ごとに [1, 1.1], [1.1, 1.2], …, [1.8, 1.9], [1.9, 2] に分割し、x が属する区間の下限を記録する、という操作を繰り返すと a0, a1, a2, a3, … から決まる区間の減少列が生み出される。この数列から
x=a_0 .a_1 a_2 a_3 \cdots
と表現される。
この記録の仕方により、実数 1 は最初に [0, 1] に属するかそれとも [1, 2] に属するかにより 1 = 1.000… と 1 = 0.999… の2通りの表示が得られることになる。このそれぞれの小数記録表示が表す実数が等しいことを証明するには、直接的には極限を用いてなされるが、順序の議論を続ける別の構成方法もある。
直接的な方法としては区間縮小法が挙げられる。この原理によれば、閉区間の減少列が与えられ、その幅が 0 に収束するとき、それらの区間の共通部分はただ1つの実数からなる1点集合であることが、実数の連続性より証明される。したがって x = a0.a1a2a3… は [a0, a0 + 1], [a0.a1, a0.a1 + 0.1], … のすべてに属する唯一の実数であると定義される。したがって 0.999… は [0, 1], [0.9, 1], [0.99, 1], … のすべてに属する唯一の実数である。一方、実数 1 はこれらすべての区間に属するので 0.999… = 1 となる。
区間縮小法は、実数の連続性のうちのより直観的であると思われる上限の存在に基づいている。この事実を直接用いると、a0.a1a2a3… を近似値の集合 a0, a0.a1, a0.a1a2, … の上限として定義することができる。増加列の上限の存在定理は実数の連続性として区間縮小法と同値であることが示せるので、再び 0.999… = 1 を得る。トム・アポストルは次のように結論付けた。
「実数が異なる2つの小数表示を持つ可能性があるという事実は、単に、実数からなる異なる2つの集合の上限・下限が等しくなる可能性があるという事実の裏返しに過ぎない。」
公理的集合論を用いて、実数の集合を実数の構成ある種の構造として明示的に定義する方法はいくつか存在する。まず、自然数とは、ものを数えるときに用いる番号のことであり、0 から始めて 0, 1, 2, … と、+1 ずつ添加していくことにより得られる。自然数を拡張して整数全体を得るには、各自然数の反数を添加すればよい。さらにそれらの商を添加すると、有理数全体が得られる。これらの数体系には、加減乗除という四則演算が付随しており、さらに、任意の2数を比較しての大小関係(どちらが大きいか、小さいか、等しいか)という順序をも備えている。
有理数から実数への拡張は(自然数から整数や有理数への拡張と比べて)大きな飛躍である。この拡張の方法は、少なくとも2つの手法がよく知られている。ともに1872年に発表された有理数の切断によるものとコーシー列によるものである。。現代数学では、解析学的に実数を構成し、それが数の公理を満たすかどうかに注意が払われる。公理による解析的手法により 0.999… = 1 を証明することになるからである。しかしながら、実数の構成をより適切に、論理的に行うことにより、0.999… = 1 の証明はもっと直接的になされる (self-contained) と主張する人もいる。
デデキント切断のアプローチでは、任意の実数 x は、「x より小さい有理数全体からなる無限集合」と定義される。この考え方では、実数 1 は「1 より小さいすべての有理数の集合」となる。
正の数でのデデキント切断は、その小数展開により得られる。小数表示を適当な位までで切って得られる有理数を使い、それより小さい有理数全体の和集合を作ればいいのである。この方法で実数 0.999… というものが何であるかを考えるなら、r < 0, r < 0.9, r < 0.99, …(つまり、ある自然数 n に対して、r < 1 − (1)n を満たす有理数 r すべてが作る集合)として定義されるということになる。0.999… より小さい有理数すべては 1 より小さいので、これは実数 1 の元に含まれる。一方、実数 1 の元となる任意の有理数
\frac{a}{b} <1
(b ≥ 1) を考えると、
\frac{a}{b} =1-\frac{b-a}{b} \le 1-\frac{1}{b} <1-\left( \frac{1}{10} \right)^b
となるため、a は 0.999… の元になっている。よって、0.999… と 1 とは全く同じ有理数をすべて元として含み、これらは集合として等しい。つまり 0.999… = 1 であるというわけである。
デデキント切断による実数の定義は、1872年にリヒャルト・デーデキントによって初めて発表された。上記の、実数をそれぞれの小数展開に帰着させる方法は、フレッド・リッチマン (Fred Richman) によって雑誌 Mathematics Magazine に投稿された "Is 0.999… = 1?" という解説論文による説明である。この論文は大学の数学教師とその生徒向けに書かれている。リッチマンは、有理数の任意の稠密な部分集合における切断を考えても同様な結果をもたらすことを指摘している。その中で彼は、分母が 10 の冪である分数全体の成す稠密部分集合を用いて、0.999… = 1 の証明をより直接的に与えている。また、x < 1 となる x は切断を有するが、x ≤ 1 となる x は切断をもたないことも指摘し、「これは 0.999… と 1 が異なってしまうことを排除するものである。……実数の伝統的な定義の中に、等式 0.999… = 1 は最初から組み込まれている」と評した。リッチマンは、この手順に修正を加えることで、0.999… ≠ 1 となる別の構造を導いている。
実数を構成するもう一つの方法は、実数の切断に比べれば間接的にではあるがやはり有理数の順序を用いるものである。まず、2つの有理数 x と y に対して、距離 d(x, y) を絶対値 x − y で定義する(z の絶対値 z とは z と −z の小さくない方と定義され、非負である)。そして実数全体というものを、この距離 d に関する有理数のコーシー列全体を以下で定義する同値類で割ったものとして定義するのである(実数の完備性も参照のこと)。ここで、有理数列(つまり自然数から有理数への写像)xn がコーシー列であるとは、
任意の正の数 ε に対して、番号 N が存在し、N より大きいすべての m, n に対して xm − xn < ε
が成り立つ(つまり、番号が十分先なら隣接2項間の距離が限りなく小さくなる)ことと定義される。
2つのコーシー列 xnと yn が同値であることを、xn − yn が 0 に収束することと定める。小数 a0.a1a2a3… に対して、各位以降を順に切り捨てていくことにより得られる数列は有理数のコーシー列を定めるので、このコーシー列が、この小数展開の表している実数の真の値と定められることになる。
この性質より 0.999… = 1 を証明するためにしなければならないことは、有理数のコーシー列
\{ x_n \} :=\{ 1,1,1,1,\cdots \}
\{ y_n \} :=\{ 0,0.9,0.99,0.999,\cdots \}
が同値である、すなわち
\lim_{n\to\infty} ( x_n -y_n )=\lim_{n\to\infty} \left( \frac{1}{10} \right)^n
が 0 に収束することを証明することである。
この極限は単純で、数列の極限の定義により示される。こうして、やはり 0.999… = 1 が示されたことになる。
コーシー列による実数の定義は、最初に(いずれも)1872年にエドゥアルト・ハイネとゲオルク・カントールにより独立に発表された。0.999… = 1 の証明を含む、小数展開による上記のアプローチは1970年にグリフィス (Griffiths) とヒルトン (Hilton) の書いた教科書 A comprehensive textbook of classical mathematics: A contemporary interpretation (「古典数学に関する総合教科書:現代的解釈」)に従っている。この教科書は、よく知られた概念について、現代の観点から再検討することを主眼に書かれている。
実数は標準的な数体系であるが、"0.999…" という無数桁の表記がある実数を表すだろうと、2022年2月は自然に考えている。ウィリアム・ティモシー・ガワーズは Mathematics: A Very Short Introduction で、等式 0.999… = 1 を結論することも同様に『慣習』であると述べている。すなわち、
「しかしながら、それは決して恣意的な慣習ではない。なぜなら、それを受け入れなければ、一風変わった新しい対象を発明するか、または算術のよく知られた規則のいくつかを諦めるかのどちらかが強制されるからである。」
標準的な数体系である実数体に対して、通常と異なる方法で数を構成し、0.999… という表記が意味を持つ、実数とは別の数体系を定義することができる。2022年2月。
0.999… = 1 のいくつかの証明は、通常の実数がアルキメデス順序体であること、すなわち、"0 でない無限小は存在しない" ことに依存している。特に、差 1 − 0.999… は任意の正の有理数よりも小さいはずであるから、それは(0 か)無限小でなければならないが、実数の体系には 0 でない無限小は無いので、差は 0、つまり二つの値は等しいことが結論付けられる。それでも、実数の非アルキメデス的代替となりうる様々な体系を含む、数学的に一貫した順序代数系は存在する。
超準解析によって、無限小(およびその逆数)の完全な系列を含んだ数体系が提供される。アルバート・ハロルド・ライトストーンは区間 (0, 1)∗ に属する超実数 (hyper­real number) に対する小数展開を考えた。ライトストーンは、拡張実数に超自然数で添字付けられた数字列
0.d_1d_2d_3 \cdots;\cdots d_{\infty-1} d_\infty d_{\infty+1} \cdots
が対応することを指摘した。ここでセミコロンの左側は有限(標準)自然数桁を表し、セミコロンの右側は無限大(超準)自然数桁を表す。ここで、セミコロンの直前や直後の桁といったものは存在しないことに注意。ライトストーンは 0.999… について直接扱ったわけではなく、移行原理 の帰結として実数 1 が 0.333…;…333… で表されることを指摘した。故に 0.999…;…999… = 1 である。ここで言う意味での小数展開が必ずしも数を表すとは限らないことに注意すべきである。特に "0.333…;…000…" や "0.999…;…000…" は何の数とも対応しない。この事実はoverspill principleを使って説明できる。小数展開の各桁を写像 d\colon {}^{\ast}\mathbb{Z}_+ \to \{0, 1, \cdots, 9\} と見做す。有限桁目が全て 3 だと仮定する。つまり
\mathbb{Z}_+ \subseteq\{n \in {}^{\ast} \mathbb{Z}_+ \mid d(n)=3\}
である。ここにoverspill principleを適用すると、ある無限大超自然数 n があって
[1, n]\subseteq\{n \in {}^{\ast} \mathbb{Z}_+ \mid d(n)=3\}
が成り立つ。つまり d は "0.333…;…333000…" や "0.333…;…333001854…" のように、ある無限大桁目まで3が連続する超実数でなければならない。なお、超実数体は順序体であるから順序位相を考えることができるが、(超)実数の可算列 \{1 - 10^{-n}\}_{n \in \mathbb{N} は収束しないから、標準桁目だけがちょうど 9 であるような超実数はそうした有限小数表示の位相的極限と見做すとしてもなお存在しない。
数 0.999… の標準的な定義は 0.9, 0.99, 0.999, … なる数列の極限であるが、それと異なる定義として例えばテレンス・タオが超極限 (ultralimit) と呼ぶ数列 0.9, 0.99, 0.999, … の超冪構成に関する同値類 [(0.9, 0.99, 0.999, …)] は 1 より無限小だけ小さい。より一般に、階数 H の無限大超自然数の位置に最後の 9 がくる超実数 uH = 0.999…;…999000…, はより厳密な不等式 uH < 1 を満足する。これに応じて、「無限個の 9 のあとに 0 が続く」ことの別解釈を
0.\underbrace{999\cdots}_H = 1 - \frac{1}{10^H}
と理解することができる。このように解釈した "0.999…" は 1 に「無限に近い」。イアン・スチュアートはこの解釈を、「0.999… は 1 よりも『ほんの少しだけ小さい』」という直観を厳密に正当化する「全く合理的な」方法として特徴づけた。 に基づき、 もまた学徒のもつ「0.999… < 1 という考えを実数に対する誤った直観とする仮定に疑問を呈し、むしろそれを「超準的」直観と解釈した方が解析学の習得において価値があるのではないかとした。Jose Benardete は自身の著書 Infinity: An essay in metaphysics において、過度に制限された数体系に話を限定する限り、数学以前の自然な直観のいくらかは言い表すことができないのだと主張した。
前項と特に関連して、組合せゲーム理論における同様の実数代替体系として、"無限二色ハッケンブッシュゲーム (infinite Blue-Red Hackenbush)" を考えることができる。1974年に、エルウィン・バーレカンプ (Elwyn Berlekamp) はデータ圧縮のアイディアに刺激されてハッケンブッシュ文字列と実数の2進展開の関係について述べた。例えば、"ハッケンブッシュ文字列 (Hackenbush string)" LRRLRLRL… の値は 0.010101… = 1 である。しかしながら、文字列 LRLLL…(0.111… に対応する)の値は 1 に比べてごくわずかだけ小さい。 これらの2数(LRLLL… と 1)の差は超現実数 1(ω は最小の超限順序数)である。これに関連するゲームは LRRRR… すなわち 0.000… である。
別の方法は、引き算はいつでもできるわけではなくて「1 − 0.999… は存在しない」としてしまうことである。加法をもつが減法をもたない数学的構造には、可換半群、可換モノイド、半環 などが含まれる。リッチマンは 0.999… < 1 となるようにデザインされた、そのような2つの構造を考えた。
まず、リッチマンは負でない"十進数"を文字通り小数展開となるように定義する。彼は辞書式順序と加法を定義した。ここでは 0.999… < 1 であることに注意する。なぜなら単に、一の位において 0 < 1 となるからである。しかし、どんな「無限小数」x に対しても 0.999… + x = 1 + x である。だから、"十進数"に特徴的なこととして、一つは加法が必ずしも打ち消し合わないということであり、もう一つは 1 に対応する"十進数"は存在しないということである。乗法を定義すると、"十進数"は正値全順序可換半環をなす。