0.999...
乗法を定義する際、リッチマンはまた、"cut D" と呼ばれる別の構造を定義する。これは小数の切断の集合である。通常この定義は実数を導くが、彼は小数 d に対して、切断 (−∞, d) と "principal cut" (−∞, d] の両方を許す。その結果、実数たちは小数と「不安定な状態で共存する (living uneasily together with)」ことになる。したがって、再び 0.999… < 1 を得る。"cut D" には正の無限小は存在しないが、"一種の負の無限小" 0− が存在する。0− には小数展開は存在しない。彼は 0.999… = 1 + 0− であると結論したが、一方、方程式 "0.999… + x = 1" は解をもたない。
1 − 0.999… は何になるかを尋ねると、しばしば "0.000…1" を浮かべられることがある。これに意味を持せることができるか否かは別として、0.999… の "最後の 9" に 1 を足すことで次々に繰り上がり、すべての 9 が 0 に変わって、一の位に 1 が残るという意図は直観的には明白である。この考えは、(他にも理由はあるが)0.999… には "最後の 9" がないので失当であるが、『最後の9』を持つ無限文字列を持つ体系というのは存在する。
p進数は整数論が研究対象とする数体系である。実数と全く同様に、p進数はコーシー列を経由して有理数の完備化として作ることができる。ただしこの構成には、0 は 1 よりも p に近く、pn にはもっと近いという、(実数の構成のときとは)異なる距離を用いる。p進数は p が素数のとき体をなし、p が素数でないとき(10 はこの場合である)でも環をなす。したがって、p進数に足し算や掛け算のような計算を実行することができ、無限小は存在しない。
p進数には小数展開の類似を考えることができ、位が左へ進む(実数の小数展開とは逆に、右へは有限桁しか進めない)。10進展開 …999 を考える。一の位に 1 を加えることができるが、すると 0 だけが残されて繰り上がりが続き、その結果 1 + …999 = …000 = 0 となる。すなわち、…999 = −1 である。もう一つの導出方法は等比級数を用いる。"…999" の意味をもつ等比級数は実数においては収束しないが、10進数では収束し、よく知られた公式を再び用いることができて
\cdots 999=9+9\cdot 10+9\cdot 10^2 +9\cdot 10^3 +\dotsb =\frac{9}{1-10} =-1
となる(前述の等比級数と比較せよ)。3番目の導出方法はある中学1年生によって発明された。その生徒は教師が 0.999… = 1 を極限を用いて行った議論に疑いをもったが、上記の 10 を掛ける証明を反対の方向へ用いてみようとした。すると、x = …999 ならば 10x = …990 であるから、10x = x − 9 であり、再び x = −1 となる。
最後の拡張として、0.999… = 1(実数における等式)と …999 = −1(10進数における等式)であるから、「盲目的に記号を偽弄することを恥じなければ (by blind faith and unabashed juggling of symbols)」2つの等式の両辺を加えて …999.999… = 0 を得る。この等式はもはや 10-進数としても通常の小数展開としても意味をもたないが、よく知られた体系、すなわち実数を表現するために、左方への循環も許す「二重十進」(double-decimals) の理論を誰かが開発すれば、一転してこの等式も意味をもち正しくなる。
等式 0.999… = 1 の証明は直ちに2つの方法で一般化される。最初に、まさにその特別な場合において考えられたように、すべての 0 でない有限小数(すなわち、後に 0 が限りなく続く)は 9 が後ろにずっと続く別表現をもっている。例えば、0.24999… は 0.25 に等しい。
次に、0.999… = 1 に相当する結果を他の基数にも適用することができる。例えば 二進法では 0.111… = 1 であり、三進法では 0.222… = 1 である。一般に、基数を b とするとき、小数点以下には b − 1 が繰り返し並ぶ。実解析の教科書は 0.999… = 1 の例を飛ばして、これらの一般化のうちの一つか両方を最初から紹介する傾向がある。
1 の別表現は、非整数を基数としても現れる。例えば、黄金比を基数とすると、2つの標準的表示は 1.000… と 0.101010… であるが、他にも 0.11, 0.1011, 0.101011 のように隣接する "1" を含む無数の表現がある。一般的に、1 と 2 の間のほとんどすべての q に対し、"非可算無限" の 『1 の q進表現』が存在する。他方で、(1 より大きい自然数を含めた)なお"非可算無限"の q が 1 の q進表現を(自明な 1.000… を除いて)ただ一つしかもたない。この結果は1990年頃に ポール・エルデシュ (Paul Erdős)、ミクローシュ・ホルヴァート (Miklos Horváth)、イストヴァン・ヨー (István Joó) によって最初に述べられた。1998年に Vilmos Komornik とパオラ・ロレティ (Paola Loreti) はこのような最小の基数として q = 1.787231650… を決定した。この基数においては、1 = 0.11010011001011010010110011010011… であり、この数はトゥエ・モース列 (Thue-Morse sequence) を与える。これは循環しない。
さらに変則的な規則に基づく記数法 (the most general positional numeral systems) においても 0.999 = 1 に相当する結果が得られる。これらもまた多様な表現をもつので、ある意味で扱いはさらに困難である。例えば、
平衡三進法 (balanced ternary system) においては、1 = 0.111… = 1.111…
階乗進法 (factorial number system) においては、1 = 1.000… = 0.1234…
マルコ・ペトカイゼク (Marko Petkovšek) は、そのように一つの数が複数の方法で表せるということは位取り記数法を用いることの必然的な結果であると述べ、すべての実数を扱う任意の位取り記数法において複数の表現をもつ実数の集合は常に稠密であることを証明した。彼はこの証明を「一般位相空間に関する初級の教育的な練習問題」と呼んだ。それは、位取り記数法の値の集合を Stone空間と見ること、その実数表現が連続関数によって与えられることに気づくことを、その証明が含んでいるからである。
1 の別表現としての 0.999… に関する一つの応用が初等整数論に見られる。1802年にグッドウィン (H. Goodwin) は、ある種の素数を分母とする分数では、循環小数表示したときに 9 が現れることを発表した。例えば、
と書かれている。
ミディ (E. Midy) は1836年にこのような分数に関する一般的な結果を証明して、現在はミディの定理と呼ばれている。その論文は曖昧であり、彼の証明が直接 0.999… を含むかどうか定かではない。しかし、レーヴィット (W. G. Leavitt) による少なくとも一つの現代的な証明ではそれが含まれている。もし、0.b1b2b3… という形の小数が正の整数であることを証明できれば、それは 0.999… に他ならず、それがこの定理において 9 たちが出現する原因となる。この方向への研究は 最大公約数、剰余計算、フェルマー素数、群の元の位数、平方剰余の相互法則などの概念に動機付けを与える。
実解析では、三進法での類似表現 0.222… = 1 は最も単純なフラクタルの一つ、カントール三進集合 (the middle-thirds Cantor set) の特徴づけに重要な役割を果たしている。
単位区間 [0, 1] の点は、三進法で 0 と 2 のみを用いて表現される場合に限りカントール集合に属するという。
小数第 n 位の数字は、この構成における第 n 段階の点の位置に反映する。例えば、点 2 は通常の 0.2 または 0.2000… として表現される。なぜなら、それは最初の欠損部分の右側に位置し、それ以後のすべての欠損部分の左に位置するからである。また、点 1 は 0.1 ではなく 0.0222… として表現される。なぜなら、それは最初の欠損部分の左側に位置し、それ以後のすべての欠損部分の右側に位置するからである。
9 の繰り返しはカントールのもう一つの仕事にさえも現れる。彼が1891年に対角線論法を適用して単位区間 [0, 1] の非可算性の適切な証明を与えたことを考慮しなければならない。このような証明ではある2つの実数が小数表現において異なることを言明することが必要とされる。したがって、0.2 と 0.1999… のような組を避けなければならない。簡単な方法においては、すべての数を無限小数で表すが、それに対する方法では 9 が最後に連続することを排斥する。カントール独自の議論に近いといえる証明の変形では実際に2進表現を用いており、3進表現を2進表現に変えることによりカントール集合の非可算性を同様に証明することができる。
数学の初学者はしばしば 0.999… と 1 が等しいことを理解できない。極限の概念や無限小の性質が日常の感覚と大きく異なっていることがその理由とされる。その共通の要因として次のようなものがある。
生徒は「十進数では、一つの数はただ一通りの小数で表すことができるはずだ」と思い込んでいる場合が多い。表示が異なる2つの小数が等しいことが分かると、それが逆説であるように見える。見かけ上よく知られた数 1 の登場でその感がさらに強くなる。
"0.999…"(または同様の表現)を、多いけれども有限の個数の "9" の列(おそらく可変であり特定できない長さ)として解釈する生徒もいる。たとえ生徒が "9" の無限個の列であることを受け入れたとしても、まだ最後の "9" が「無限の彼方に」あると期待しているのかもしれない。
直観やあいまいな教え方により、生徒は数列の極限を、一つの決まった値ではなくある種の無限操作と考えるようになる。それは数列の各項はその極限に達する必要はないからである。生徒が数列とその極限の違いを受け入れても、彼らは "0.999…" を極限ではなく数列を意味するものと読む可能性がある。
これらの考えは、通常の実数を扱う文脈においては誤っている。しかしながら、通常と異なる場面で適用するために発明された、もしくは、0.999… を理解するのに有益な反例としての、より精巧な数の体系構造においては、それらの考えの多くが部分的に正しいことが示される。
これらの要因の多くはデイヴィッド・トール (David Tall) 教授により発見された。教授は、自らが遭遇した大学生の誤解のいくつかについて、それを生徒に抱かせる原因となった指導法と認識の特徴を研究している。非常に多くの生徒がなぜ最初はこの等式を受け入れないのかを調べるために生徒を面接して、次のようなことを発見した。
「生徒は 0.999… を、決まった値ではなく 1 に限りなく近づく数列として理解し続けようとする。その原因は『先生は小数点以下の桁数がいくつあるかをはっきりと教えていなかった』という指導法の欠陥、または『0.999… は 1 より小さい数の中で、存在しうる、1 に最も近い小数である』という認識である。」
初等的な証明の中で 0.333… = 1 の両辺を 3倍する方法は、0.999… = 1 であることを容認できない生徒に受け入れさせるための、最も有効な手段であるかのように見える。しかしながら、第1の等式を信じることと、第2の等式を信じないことの矛盾に直面すると、今度は第1の等式を疑い始める者も現れるし(後述も参照)、または単に不満を抱くだけの生徒もいる。これより簡潔で有効な説明方法もなかなかない。厳密な定義を十分適用する能力のある生徒が、0.999… を含めてさらに進んだ数学の結果に驚いたとしても、なお直観的な想像に頼ってしまうことがある。例えば、ある解析学を学ぶ生徒は 0.333… = 1 であることを上限の定義を用いて証明することができるが、その後もなお、昔の筆算の理解に基づいて 0.999… < 1 であると主張した。別の生徒は、1 = 0.333… であることを証明することができるが、分数による証明に直面して「論理」が数学の計算を征服していると主張する。
ジョセフ・メイザー (Joseph Mazur) は別の才能豊かな微積分学の生徒について語る。その生徒は「私が授業で言ったことにはほとんどすべて異議を唱えるが、自分の使っている計算機には決して異議を唱えない」。さらに、23 の平方根を計算することも含めて、数学をするのに必要なのは 9桁(程度)だと信じるようになった。その生徒は 9.999… = 10 であるという極限の議論に相変わらず不愉快な感じを抱いていたが、それは「乱暴な推測をする、無限概念の成長過程 (wildly imagined infinite growing process)」と呼ばれる。
エド・デュビンスキー (Ed Dubinsky) による数学学習の理論 (APOS theory) の一部分として、デュビンスキーとその共同研究者 (2005) は、0.999… を「1 から無限に小さい距離だけ離れている数を表す有限で不確定の文字列」であると思う生徒は「無限小数の構成過程の完全な概念がまだ形成されていない」と述べた。たとえ 0.999… の構成過程の完全な概念を身につけた生徒であっても、まだその過程を(すでに持っている "1" の概念と同様の)一つの「対象」としてとらえ直すことができずに、0.999… という一つの過程と 1 という数の存在を矛盾するものととらえるかもしれない。デュビンスキーらはまた、「一つの対象としてとらえ直す」というこの精神的能力が、1 それ自体を数と見なしたり、自然数の集合それ自身を一つの対象として取り扱ったりすることと関係していると考えている。
インターネットの登場に伴い、0.999… = 1 に関する論争は教育現場だけでなく、ニュースグループや電子掲示板など、普段はあまり数学に関係のない場所でも話題となることがある。ニュースグループ <tt>[news:sci.math sci.math]</tt> では、0.999… に関する議論は「流行のスポーツ」であり、それは FAQ で回答された問題の一つである。その FAQ は 1 を用いる方法、10倍する方法、極限を用いる方法を簡潔に扱い、さらには同様にコーシー列にも言及している。
アメリカの新聞 Chicago Reader のコラム The Straight Dope の2003年版では、誤った概念に関して言及しつつ、1 や極限を通して 0.999… について次のように議論している。
「我々の中の類人猿的要素が、『0.999… は実際に数 を表しているのではなく、過程 を表している。一つの数を見つけるために我々はその過程を途中で断ち切らなければならない。その時点において 0.999… = 1 という概念は崩壊する。』と言って依然として抵抗している。
ナンセンスだ!」
The Straight Dope は「他の掲示板…ほとんどがビデオゲーム」から独立した専用の掲示板で議論を載せている。同様の調子で、0.999… の問題は、アメリカのゲーム開発会社ブリザード・エンターテイメントの Battle.net フォーラムで最初の7年間にとても一般的な話題であることが分かったため、社長の Mike Morhaime は2004年4月1日の記者会見で 0.999… = 1 であると発表した。
「我々はこの問題に対しきっぱりと決着をつけることに大変興奮しています。我々は 0.999… が 1 に等しいのか等しくないのかについての、心痛や心配に立ち会ってきました。ここに次の証明を提示し、我々の顧客に対して、最終的に断固としてこの問題に対処できることを嬉しく思います。」
続くプレスリリースで、極限に基づくものと 10 を掛けるものの2つの証明を提供している。
ゼノンのパラドックス、とりわけアキレウスと亀のパラドックスは、見かけ上のパラドックス 0.999… = 1 を連想させる。アキレウスのパラドックスは数学的にモデル化され、0.999… と同じように等比数列を用いて解決される。しかしながら、この数学的な取り扱いがゼノンが探求していた潜在的な形而上の問題に対処しているかどうかは明らかでない。ただし、無限和の値(ここでは有限小数の無限和としての無限小数)は、部分和の極限(限りなく近づいていくが、決して到達しない点)によって定義されているので、この方法では、パラドックスを解決したことにはならない、という論議がある(総和、循環小数、循環論法を参照)。この点に留意すれば、0.999… = 1 であると言う帰結は、極限によって無限小数の値を定義した結果であり、必ずしも自明なことではない(その意味では前述の「第1の等式を信じることと、第2の等式を信じないことの矛盾に直面すると、今度は第1の等式を疑い始める」という態度は、一定の数学的なセンスのある姿勢だと見ることもできる)。そもそも無限に存在する値を全て足し合わせることができるのか、と言う問いは未解決であり(現代数学では定義として処理されている。公理的集合論を参照)、0.999… = 1 やゼノンのパラドックスと言った話題がそのことを想起させてくれる恰好の題材であることは確かであろう。
0 による除算は 0.999… のいくつかの一般的な議論に見られるが、それもまた論争を引き起こす。多くの著者が 0.999… を定義することを選択する一方で、実数の現代的な取り扱いでは 0 による除算は定義されない。というのは、それが通常の実数の範囲では意味を与えられないからである。しかしながら、0 による除算は複素解析など他の体系では定義されている。複素解析では、拡張された複素平面(リーマン球面)は無限遠点をもつ。ここで、1 を無限大であると定義することには意味がある。また、実際その結果は奥深く、工学や物理学にも応用できる。何人かの著名な数学者は、どの数体系も発達するずっと前からそのような定義を論じていた。
冗長な数表記の類例として負の 0 が挙げられる。実数などの数体系においては、"0" は加法に関する単位元を意味し、正の数でも負の数でもない。通常 "−0" は加法に関する 0 の逆元を表すと解釈されるため、−0 = 0 でなければならない。それにもかかわらず、いくつかの科学的な応用では、正と負の 0 を分けて用いる。これはいくつかのコンピュータの数体系(例えば符号付数値表現、1 の補数表現、IEEE 754 で定義されたような浮動小数点表示)でもそうである。IEEE の浮動小数点数の場合は、負の 0 は、与えられた正確な数値を表すには(絶対値が)小さすぎるが、それでもなお負の数である値を表している。したがって、IEEE 浮動点数表示における「負の 0」は本来の意味で"負の 0" ではない。