コンテンツにスキップ

1 は 0.999… と等しいか:無限小数の意味を決めてから答える

生 Markdown
  • 0.9990.999\ldots11 と等しいか」という問いは、そのままでは数学の問いになっていません0.9990.999\ldots という記号が何を指すかを先に決める必要があります。
  • 標準的な決め方は「0.9, 0.99, 0.999, 0.9,\ 0.99,\ 0.999,\ \ldots という有限小数の列の上限(=極限)」です。この約束のもとで 0.999=10.999\ldots = 1証明できます。近似でも便宜でもなく、等号です。
  • 有名な三つの論証(1/31/333 倍する、1010 倍して引く、部分和の上限を定義から直接調べる)は、どれも正しい結論に達しますが、暗黙に使っている前提が違います。それを明るみに出すのがこの記事の主目的です。
  • 直感が反発する原因は主に三つです。「限りなく近づく過程」と「到達した値」の混同、「最後の桁」があるという思い込み、そして「表記が違えば数も違う」という思い込みです。
  • 決め手になるのは実数のアルキメデス性(どんな正の数より小さい正の数は存在しない)です。「実数にすきまがない」の内容を、稠密性・完備性・アルキメデス性に分けて整理します。

インターネットで最も再生産されている数学の論争のひとつが、これです。

0.9990.999\ldots99 が無限に続く小数)は 11 に等しいのか、それとも「11 に限りなく近いが 11 ではない」のか。

この論争が何年経っても終わらないのには理由があります。両陣営とも、0.9990.999\ldots という記号の意味を述べないまま議論しているからです。意味が決まっていない記号について「等しい/等しくない」を争っても、決着しようがありません。「この果物は美味しいか」を、どの果物か言わずに議論しているようなものです。

数学が普通の議論と違うのは、この段階で「まず言葉の意味を決めよう」と言い出すところです。定義を決めずに走り出した結果どうなるかは、ゼロで割ってはいけない理由 でも同じ形で現れます。あちらは「割り算とは何か」(割り算=積の逆演算(定義 2.1)[ゼロで割ってはいけない理由])を決めると 00 で割る操作が定義できない(0 でない数は 0 で割れない(命題 3.2)[ゼロで割ってはいけない理由])ことが分かる話で、こちらは「無限小数とは何か」を決めると等号が証明できてしまう話です。方向は逆ですが、やっていることは同じです。

そして面白いのは、意味を決めて証明を読み終えたあとでも、多くの人が「頭では分かったが、腹に落ちない」と言うことです。この居心地の悪さ自体が観察に値します。数学教育の研究では、人が持っている心の中のイメージ(concept image)と、正式な定義(concept definition)がずれる現象が調べられており、極限をめぐるそのずれの代表例として、まさにこの 0.9990.999\ldots が扱われてきました(Tall と Vinner の 1981 年の論文。参考文献を参照)。直感が裏切られる経験としては モンティ・ホール問題変更戦略の勝率は 2/3(定理 3.2)[モンティ・ホール問題])と同類で、正解を聞いても抵抗が残るところまでよく似ています。

この記事では、次の順で進みます。まず記号の意味を決め(第 2 節)、三つの論証を最後まで実行し(第 3 節)、直感が反発する理由を分解し(第 4 節)、最後に「実数にすきまがない」という言い方の正体を突き止めます(第 5 節・第 6 節)。

2. 準備:0.999… は何を指す記号か

Section titled “2. 準備:0.999… は何を指す記号か”

まず有限小数から始めます。ここは誰も文句を言わないところです。

定義 2.1有限小数の値

a1,a2,,ana_1, a_2, \ldots, a_n00 以上 99 以下の整数とする。記号 0.a1a2an0.a_1a_2\cdots a_n は、有限個の和

k=1nak10k\sum_{k=1}^{n} a_k \cdot 10^{-k}

を表すものと約束する。

これは単なる略記です。0.9990.9999/10+9/100+9/10009/10 + 9/100 + 9/1000 のことで、計算すれば 999/1000999/1000 です。有限個の足し算しか出てこないので、何も新しいことは起きていません。

問題は 99 が無限に続くときです。無限個の数を足す操作は、まだ定義されていません。足し算は 22 個の数に対して定義された演算で、そこから帰納的に有限個まで拡張されているだけです。無限個の足し算は、定義しない限り存在しません。ここを飛ばして「無限に足したもの」と言った瞬間に、議論は空中に浮きます(無限個の和を部分和の極限として定める一般的な約束については 無限級数の和の定義(定義 2.1)[オイラーとラマヌジャン] を参照)。

そこで、無限小数の値を次のように定めることにします。

定義 2.2無限小数の値

k=1,2,3,k = 1, 2, 3, \ldots に対して aka_k00 以上 99 以下の整数とする。第 nn 部分和を

sn=k=1nak10ks_n = \sum_{k=1}^{n} a_k \cdot 10^{-k}

と置く。記号 0.a1a2a30.a_1a_2a_3\cdots の値とは、集合 S={s1,s2,s3,}S = \{s_1, s_2, s_3, \ldots\}上限 supS\sup S、すなわち SS の上界のうち最小のもののことである。

この定義が意味を持つには、supS\sup S が実数として存在しなければなりません。それを保証するのが実数の**連続性公理(上限の存在)**です。SS11 で上に押さえられており(snk=1n910k<1s_n \le \sum_{k=1}^n 9 \cdot 10^{-k} < 1)、空でもないので、上限が存在します。有理数だけの世界では上限は存在するとは限らない(たとえば {xQ:x2<2}\{x \in \mathbb{Q} : x^2 < 2\} に有理数の上限はない)ので、ここは実数の性質を本当に使っています。

注意 2.3

s1s2s3s_1 \le s_2 \le s_3 \le \cdots は単調増加なので、supS\sup S は数列 (sn)(s_n) の極限 limnsn\lim_{n \to \infty} s_n と一致します。したがって 定義 2.2 は「部分和の極限」と言っても同じです。以下では便利な方を使います。極限の定義を確認しておくと、「任意の ε>0\varepsilon > 0 に対してある番号 NN が存在し、nNn \ge N ならば snL<ε|s_n - L| < \varepsilon」が成り立つとき limsn=L\lim s_n = L と書きます。

3. 三つの論証を最後まで実行する

Section titled “3. 三つの論証を最後まで実行する”

準備として、有限小数の側の計算を片付けておきます。

命題 3.19 が n 個並んだ有限小数

n1n \ge 1 を整数とし、sn=0.999n 個s_n = \underbrace{0.99\cdots 9}_{n \text{ 個}}、すなわち sn=k=1n910ks_n = \sum_{k=1}^{n} 9 \cdot 10^{-k} とする。このとき

sn=110ns_n = 1 - 10^{-n}

が成り立つ。

証明(命題 3.1)

恒等式 (x1)(xn1+xn2++x+1)=xn1(x - 1)(x^{n-1} + x^{n-2} + \cdots + x + 1) = x^{n} - 1 を使います。これは左辺を展開すると xn+xn1++xx^n + x^{n-1} + \cdots + x から xn1++x+1x^{n-1} + \cdots + x + 1 を引く形になり、中間項がすべて打ち消し合って xn1x^n - 1 が残ることから分かります。x=10x = 10 を代入すると

9(10n1+10n2++10+1)=10n19 \cdot (10^{n-1} + 10^{n-2} + \cdots + 10 + 1) = 10^{n} - 1

です。両辺を 10n10^{n} で割ると、左辺は

9(101+102++10n)=k=1n910k=sn9 \cdot (10^{-1} + 10^{-2} + \cdots + 10^{-n}) = \sum_{k=1}^{n} 9 \cdot 10^{-k} = s_n

となり(定義 2.1 による)、右辺は (10n1)/10n=110n(10^n - 1)/10^n = 1 - 10^{-n} です。よって sn=110ns_n = 1 - 10^{-n} を得ます。

具体的に確かめておきます。n=3n = 3 なら s3=0.999s_3 = 0.999 で、1103=10.001=0.9991 - 10^{-3} = 1 - 0.001 = 0.999。合っています。この式は「99 をいくつ並べても、11 との差はちょうど 10n10^{-n} だけ残る」と読めます。差は残るのです。有限個なら

3.1. 論証その 1:1/31/333 倍する

Section titled “3.1. 論証その 1:1/31/31/3 を 333 倍する”

最もよく見かけるのがこれです。

命題 3.21/3 の展開からの帰結

0.333=1/30.333\ldots = 1/333 が無限に続く)が成り立つならば、0.999=10.999\ldots = 1 が成り立つ。

証明(命題 3.2)

tn=0.333n 個t_n = \underbrace{0.33\cdots 3}_{n \text{ 個}} と置きます。命題 3.1 の計算をそのまま 33 で割れば、tn=sn/3=(110n)/3t_n = s_n / 3 = (1 - 10^{-n})/3 です。仮定より limntn=1/3\lim_{n\to\infty} t_n = 1/3

一方、sn=3tns_n = 3 t_n ですから、数列の極限が定数倍と交換すること(limctn=climtn\lim c\,t_n = c \lim t_n)を使って

limnsn=limn3tn=313=1\lim_{n \to \infty} s_n = \lim_{n \to \infty} 3 t_n = 3 \cdot \frac{1}{3} = 1

を得ます。注意 2.3 によりこの極限が 0.9990.999\ldots の値ですから、0.999=10.999\ldots = 1 です。

注意 3.3

この論証は正しいのですが、説得力の出どころに注意が必要です。0.333=1/30.333\ldots = 1/3 という等式は、0.999=10.999\ldots = 1 と同じ種類の主張です(どちらも「無限小数の値が、ある有理数にぴったり等しい」)。したがってこれは、片方を認めるならもう片方も認めよ、という整合性の議論であって、ゼロからの証明ではありません。「1/31/3 の方は筆算で納得できるから安心だ」と感じるとすれば、それは筆算という手続きに慣れているだけで、論理的にはどちらも同じ崖の上に立っています。証明としての正体は「定数倍と極限が交換する」という一点にあります。

3.2. 論証その 2:1010 倍して引く

Section titled “3.2. 論証その 2:101010 倍して引く”

次に有名なのがこれです。x=0.999x = 0.999\ldots と置き、10x=9.99910x = 9.999\ldots だから 10xx=910x - x = 9、よって x=1x = 133 行で終わります。速いのですが、1010 倍したときに小数点以下がそっくり同じ形で残る、という部分を暗黙に使っています。そこを埋めると次のようになります。

命題 3.4桁ずらしの論証

x=0.999x = 0.999\ldots定義 2.2 の意味で定めると、10x=9+x10x = 9 + x が成り立つ。したがって x=1x = 1 である。

証明(命題 3.4)

sn=110ns_n = 1 - 10^{-n}命題 3.1)に対し、n2n \ge 2 のとき

10sn=10(110n)=1010(n1)=9+(110(n1))=9+sn110 s_n = 10(1 - 10^{-n}) = 10 - 10^{-(n-1)} = 9 + \bigl(1 - 10^{-(n-1)}\bigr) = 9 + s_{n-1}

です。ここで使ったのは指数法則 1010n=10(n1)10 \cdot 10^{-n} = 10^{-(n-1)} と、命題 3.1n1n-1 に適用した式だけです。この等式は「0.9990.99\cdots9nn 個)を 1010 倍すると 9.9999.99\cdots9(小数点以下 n1n-1 個)になる」という当たり前の事実の、式による表現です。

両辺で nn \to \infty とします。注意 2.3 より limsn=x\lim s_n = x であり、limsn1=x\lim s_{n-1} = x でもあります(番号を 11 ずらしても極限は変わりません)。極限は定数倍と加法を保つので、左辺は 10x10x、右辺は 9+x9 + x に収束します。極限は一意なので 10x=9+x10x = 9 + x、すなわち 9x=99x = 9x=1x = 1 です。

注意 3.5

この論証を「無限小数どうしの引き算を筆算でやった」と受け取ると危険です。同じ手つきで y=999y = \cdots 999(左に 99 が無限に続く整数)に対して 10y=990=y910y = \cdots 990 = y - 9 から y=1y = -1 が出ますが、これは通常の実数の中では成り立ちません。極限が存在することを確かめずに演算だけ形式的に走らせると、平気で偽の結論に着きます。 定義されていない操作を一手だけこっそり混ぜると結論がいくらでも壊れるという点では、00 で割る一手を隠して 1=21 = 2 を導く偽証明(1 = 2 の偽証明(例 4.4)[ゼロで割ってはいけない理由])と同じ構図です。上の証明が正しいのは、xx が存在する実数だと 定義 2.2 で保証済みだからです。なお 999=1\cdots 999 = -1 が本当に成り立つ数の体系もあります。それは第 6 節で触れます。

3.3. 論証その 3:定義に直接あたる

Section titled “3.3. 論証その 3:定義に直接あたる”

前の二つは「0.9990.999\ldots が実数として存在する」ことを認めた上での変形でした。定義から直接やると、次のようになります。これが本命です。準備として、道具をひとつ用意します。第 5 節の主役でもあります。

補題 3.6アルキメデスの原理(10 の冪の版)

任意の実数 ε>0\varepsilon > 0 に対して、10n<ε10^{-n} < \varepsilon を満たす自然数 nn が存在する。

証明(補題 3.6)

まず 10n1+9n10^{n} \ge 1 + 9n をすべての自然数 nn について示します。n=1n = 1 のとき 101010 \ge 10 で成立します。nn で成り立つとすると

10n+1=1010n10(1+9n)=10+90n10+9n=1+9(n+1)10^{n+1} = 10 \cdot 10^{n} \ge 10(1 + 9n) = 10 + 90n \ge 10 + 9n = 1 + 9(n+1)

(二つ目の不等号は 90n9n90n \ge 9n、すなわち 81n081n \ge 0 から従います)となり、n+1n+1 でも成り立ちます。よって数学的帰納法によりすべての nn で成り立ちます。

次に、実数のアルキメデス性(任意の実数 MM に対し n>Mn > M となる自然数 nn が存在する)を M=1/(9ε)M = 1/(9\varepsilon) に適用して、n>1/(9ε)n > 1/(9\varepsilon) を満たす自然数 nn を取ります。この nn について

10n1+9n>9n>919ε=1ε10^{n} \ge 1 + 9n > 9n > 9 \cdot \frac{1}{9\varepsilon} = \frac{1}{\varepsilon}

が成り立ちます(左端はいま示した不等式、次は 1>01 > 0、その次は n>1/(9ε)n > 1/(9\varepsilon) の両辺を 99 倍したものです)。10n10^{n}1/ε1/\varepsilon はともに正なので、両辺の逆数を取ると不等号の向きが変わり、10n<ε10^{-n} < \varepsilon を得ます。

定理 3.70.999… = 1

sn=0.999n 個s_n = \underbrace{0.99\cdots9}_{n\text{ 個}}S={s1,s2,s3,}S = \{s_1, s_2, s_3, \ldots\} とする。定義 2.2 の意味で 0.999=supS0.999\ldots = \sup S と定めるとき、

0.999=10.999\ldots = 1

が成り立つ。

証明(定理 3.7)

上限が「上界のうち最小のもの」であることを、二段階で確かめます。

第 1 段:11SS の上界である。 命題 3.1 より sn=110ns_n = 1 - 10^{-n} で、10n>010^{-n} > 0 ですから sn<1s_n < 1 がすべての nn で成り立ちます。よって 11SS の上界です。

第 2 段:11 より小さい数は SS の上界になれない。 c<1c < 1 を任意に取り、ε=1c>0\varepsilon = 1 - c > 0 と置きます。補題 3.6 により、10n<ε10^{-n} < \varepsilon となる自然数 nn が存在します。この nn に対して

sn=110n>1ε=cs_n = 1 - 10^{-n} > 1 - \varepsilon = c

となり、cc より大きい SS の元 sns_n が見つかりました。よって cc は上界ではありません。

第 1 段で 11 が上界であり、第 2 段で 11 未満のものはどれも上界でないと分かったので、上界の最小値は 11 です。すなわち supS=1\sup S = 1、つまり 0.999=10.999\ldots = 1 です。

この証明の形は覚えておく価値があります。「上限が LL である」を示すには、いつも二段階です。LL が上界であること(誰も LL を超えない)と、LL より少しでも小さい値では届かない元がいること。第 2 段こそが、11 を「ぎりぎりの値」たらしめている部分です。

例 3.80.4999… = 0.5 を最後まで計算する

tn=0.4999n1 個t_n = 0.4\underbrace{99\cdots9}_{n-1 \text{ 個}}n2n \ge 2)と置きます。定義に従って

tn=410+k=2n910k=410+110j=1n1910j=410+110(110(n1))t_n = \frac{4}{10} + \sum_{k=2}^{n} 9 \cdot 10^{-k} = \frac{4}{10} + \frac{1}{10}\sum_{j=1}^{n-1} 9 \cdot 10^{-j} = \frac{4}{10} + \frac{1}{10}\bigl(1 - 10^{-(n-1)}\bigr)

です(k=j+1k = j+1 と置き換え、命題 3.1n1n-1 に適用しました)。整理すると

tn=0.4+0.110n=0.510n.t_n = 0.4 + 0.1 - 10^{-n} = 0.5 - 10^{-n}.

定理 3.7 の証明とまったく同じ二段階の議論(0.50.5 は上界、c<0.5c < 0.5補題 3.6 により上界になれない)で sup{tn}=0.5\sup\{t_n\} = 0.5 が従います。つまり 0.4999=0.50.4999\ldots = 0.5 です。0.999=10.999\ldots = 1 は特別な事故ではなく、00 でない有限小数のすべてに同じことが起きます。

例 3.92 進法でも同じことが起きる

22 進法で 0.111(2)0.111\ldots_{(2)} を考えます。部分和は un=k=1n2ku_n = \sum_{k=1}^{n} 2^{-k} で、命題 3.1 と同じ恒等式(x=2x = 2 の場合)から un=(2n1)/2n=12nu_n = (2^n - 1)/2^n = 1 - 2^{-n} です。2n1+n2^{n} \ge 1 + nn=1n=1222 \ge 22n+1=22n2+2n2+n2^{n+1} = 2\cdot 2^n \ge 2 + 2n \ge 2 + n による帰納法)なので 2n2^{-n} はいくらでも小さくなり、定理 3.7 とまったく同じ二段階の議論で 0.111(2)=10.111\ldots_{(2)} = 1 を得ます。この現象は 1010 という基数のせいではありません。 位取り記法という仕組みそのものに内在しています。

例 3.10循環小数を分数に直す

0.3636360.363636\ldots を計算します。22 桁ずつまとめると、部分和は vn=k=1n36100kv_n = \sum_{k=1}^{n} 36 \cdot 100^{-k} です。恒等式 (x1)(xn1++x+1)=xn1(x-1)(x^{n-1} + \cdots + x + 1) = x^n - 1x=100x = 100 を入れると 99(100n1++1)=100n199(100^{n-1} + \cdots + 1) = 100^n - 1 ですから、両辺に 36/(99100n)36/(99 \cdot 100^{n}) を掛けて

vn=3699100n1100n=3699(1100n)=411(1100n)v_n = \frac{36}{99} \cdot \frac{100^n - 1}{100^n} = \frac{36}{99}\bigl(1 - 100^{-n}\bigr) = \frac{4}{11}\bigl(1 - 100^{-n}\bigr)

を得ます。100n10n100^{-n} \le 10^{-n} なので 補題 3.6 が使え、sup{vn}=4/11\sup\{v_n\} = 4/11 です。実際 4÷11=0.36364 \div 11 = 0.3636\ldots で辻褄が合っています。すべての循環小数はこの手順で分数に直せます。逆に、循環しない無限小数は無理数です。

flowchart TD
A["記号 0.999… の意味を決める"] --> B["部分和の列 0.9, 0.99, 0.999, …"]
B --> C["その上限を値と定める(上限の存在は実数の連続性公理)"]
C --> D["上限は 1 か"]
D --> E["1 は上界:どの部分和も 1 未満"]
D --> F["1 未満の数は上界になれない:アルキメデスの原理"]
E --> G["0.999… = 1"]
F --> G
0.999… = 1 の論理構造。定義を決める段階と、証明の段階が分かれている

証明を三通り読んでも納得できないとしたら、それは論理の問題ではなく、心の中のイメージの問題です。よくある引っかかりを、ひとつずつ分解します。

引っかかり 1:「限りなく近づく」は過程であって、到達点ではない。

0.9, 0.99, 0.999, 0.9,\ 0.99,\ 0.999,\ \ldots という列を思い浮かべると、私たちは動画を再生するように、増えていく途中の姿を見ます。その動画のどのコマにも、11 との差が残っています(命題 3.1 のとおり、nn コマ目の差はちょうど 10n10^{-n} です)。だから「差はいつまでも消えない」と感じます。

しかしその感覚は正しい。そして、0.9990.999\ldots はその動画のどのコマでもありません。 定義 2.2 が定めたのは、コマの集合全体の上限という、たった一つの静止した数です。動画と、動画が向かっている先とを混同すると、話が噛み合わなくなります。「限りなく近づく」のは列であって、0.9990.999\ldots という数は近づいたりしません。数は動きません。

引っかかり 2:「最後の 99 の次に、何かあるはずだ」。

10.999=0.00011 - 0.999\ldots = 0.000\ldots1 だ、という主張をよく見ます。この記号を真面目に読んでみます。位取り記法とは、各自然数 kk に対して第 kk 桁の数字を対応させる規則のことです(定義 2.2)。0.00010.000\ldots1 と書いたとき、11 が置かれているのは第何桁でしょうか。

もし第 mm 桁(mm は自然数)だと答えるなら、その数は 10m10^{-m} という正の数です。しかし 定理 3.7 により差は 00 ですから、これは違います。「自然数では表せない、いちばん最後の桁だ」と答えるなら、そんな桁は位取り記法に存在しません。自然数の集合 N={1,2,3,}\mathbb{N} = \{1, 2, 3, \ldots\} に最大元がないからです。つまり 0.00010.000\ldots1 という記号は、見た目が小数に似ているだけで、何も指していません

引っかかり 3:「書き方が違えば、違う数のはずだ」。

これは根が深い思い込みです。1/21/22/42/43/63/6 が同じ数であることには誰も抵抗しません。4\sqrt{4}22 も同じです。名前と、名前が指すものは別だからです。ところが小数表記だけは、なぜか「数そのもの」だと感じられます。おそらく小学校以来、小数は計算の道具として体に染み付いているせいでしょう。

実際には、小数表記も名前のひとつにすぎません。そして名前が二つある数は確かに存在します。それが第 6 節の二重表現の定理です。

00.910.90.9910.990.9991
拡大しても『すきま』は見えてこない。右端に残る帯の幅は 0.1、0.01、0.001 と縮み、どの正の幅よりも小さくなる

5. 「実数にすきまがない」とは、正確には何のことか

Section titled “5. 「実数にすきまがない」とは、正確には何のことか”

「実数には 0.9990.999\ldots11 の間に入る余地がない」という言い方をよく聞きます。この「余地がない」には、実は性質の異なる三つの主張が混ざっています。分けておきましょう。

定理 5.1相異なる二つの実数の間には別の実数がある

実数 a,ba, ba<ba < b を満たすならば、a<c<ba < c < b を満たす実数 cc が存在する。実際 c=(a+b)/2c = (a+b)/2 が条件を満たす。

証明(定理 5.1)

c=(a+b)/2c = (a+b)/2 と置きます。a<ba < b の両辺に aa を足すと 2a<a+b2a < a + b、両辺を 22 で割って a<ca < c。同様に a<ba < b の両辺に bb を足すと a+b<2ba + b < 2b、両辺を 22 で割って c<bc < b。よって a<c<ba < c < b です。使ったのは順序と四則の両立(不等式の両辺に同じ数を足してよい、正の数で割ってよい)だけです。

この性質を稠密性と呼びます。これを使うと 定理 3.7 の別証明が書けます。もし 0.999<10.999\ldots < 1 だとすると、その間に実数 cc があるはずです。その cc は、すべての sns_n より大きく(sn0.999<cs_n \le 0.999\ldots < c)、しかも 11 より小さい。ところが 定理 3.7 の第 2 段で示したとおり、11 より小さい数はどれも SS の上界になれません。矛盾です。したがって「間にある数を言ってみてください」という問いかけには、原理的に答えがありません。

しかし稠密性だけでは足りません。実は有理数だけの世界にも稠密性はありますa,ba, b が有理数なら (a+b)/2(a+b)/2 も有理数)。それでも有理数には 2\sqrt{2} のところに穴が空いています。稠密であることと、穴がないことは別のことです。

本当に効いているのは 補題 3.6 の背後にある性質です。

系 5.2実数に無限小はない

実数 δ\delta が「δ>0\delta > 0 かつ、すべての自然数 nn について δ<1/n\delta < 1/n」を満たすことはない。

証明(系 5.2)

そのような δ>0\delta > 0 があったとします。ε=δ\varepsilon = \delta として 補題 3.6 を使うと、10n0<δ10^{-n_0} < \delta を満たす自然数 n0n_0 が取れます。

一方、N=10n0N = 10^{n_0} もまた自然数ですから、仮定「すべての自然数 nn について δ<1/n\delta < 1/n」を n=Nn = N に適用できて

δ<110n0=10n0\delta < \frac{1}{10^{n_0}} = 10^{-n_0}

を得ます。これと 10n0<δ10^{-n_0} < \delta を合わせると δ<δ\delta < \delta となり、矛盾です。よってそのような δ\delta は存在しません。

これで役者が揃いました。三つの性質を整理します。

性質内容有理数 Q\mathbb{Q}実数 R\mathbb{R}0.999=10.999\ldots = 1 への効き方
稠密性相異なる二数の間に別の数がある成り立つ成り立つ「間の数を出せ」という反論を封じる
アルキメデス性無限小が存在しない(系 5.2成り立つ成り立つ等号の決め手11 未満は上界になれない
完備性上に有界な集合に上限がある成り立たない成り立つ記号 0.9990.999\ldots に値を与える

注意 5.3

表から読み取ってほしいのは次の点です。0.999=10.999\ldots = 1 という等式そのものは、実は有理数の範囲でも成り立ちます(部分和も極限も有理数なので)。完備性が必要になるのは等式の証明ではなく、その手前、「無限に 99 が続く記号に、そもそも数を対応させてよい」と言うところです。「実数は連続だから 0.999=10.999\ldots = 1 なのだ」という説明は、当たらずといえども遠からず、といったところです。等号を決めているのはアルキメデス性で、記号に意味を与えているのが完備性です。

6. 逃げ道はあるか:二重表現と、無限小のある世界

Section titled “6. 逃げ道はあるか:二重表現と、無限小のある世界”

例 3.8 で見たとおり、二つの表現を持つ数は 11 だけではありません。どれがそうなるかは完全に決まります。

定理 6.1小数展開の二重表現

xx0<x10 < x \le 1 を満たす実数とする。xx が二つ以上の相異なる小数展開(0.a1a2a30.a_1a_2a_3\cdots の形の表現、ただし x=1x = 11.0001.000\ldots も含めて考える)を持つための必要十分条件は、xx がある整数 q1q \ge 1 と整数 k0k \ge 0 を用いて x=q/10kx = q/10^{k} と書けること、すなわち xx が有限小数であることである。このとき表現はちょうど二つで、一方は末尾が 00 の繰り返し、他方は末尾が 99 の繰り返しになる。

注意 6.2

証明は Appendix に置きました。議論の骨格は「二つの展開が最初に食い違う桁を見つけ、そこで不等式を両側から挟むと、等号成立の条件として『片方は以降ずっと 00、他方は以降ずっと 99』が強制される」というものです。補題 3.6 を使うのは、99 が続く方の値を評価する一箇所だけです。

注意 6.3

この重複は不便に見えますが、数学の中では積極的に使われます。たとえばカントール集合を「33 進展開に 11 が現れない数の全体」と定義するとき、1/3=0.1000(3)=0.0222(3)1/3 = 0.1000\ldots_{(3)} = 0.0222\ldots_{(3)} という二重表現のおかげで 1/31/3 はちゃんとカントール集合に属します。二重表現を無視すると、この定義は壊れます。

では、0.99910.999\ldots \ne 1 となる世界を作ることはできるでしょうか。二つの方向を紹介します。どちらも実在する数学ですが、期待どおりの逃げ道にはなっていません。

注意 6.4

超実数(無限小のある順序体)。 実数を拡張して、00 より大きくどんな 1/n1/n よりも小さい無限小 δ\delta を含む体 R^{*}\mathbb{R} を作れます。これは 系 5.2 と矛盾しません。R^{*}\mathbb{R} はアルキメデス的でない、つまり別の体系だからです。ここでなら 1δ1 - \delta のような「11 より無限小だけ小さい数」が本当に存在します。

しかし、これで 0.99910.999\ldots \ne 1 になるわけではありません。0.9990.999\ldots という記号が「自然数 1,2,3,1, 2, 3, \ldots で番号付けられた 99 の列」を意味する限り、その部分和の列は標準的な自然数で添字付けられており、値はやはり 11 です。差を作るには、添字の方を無限大の超自然数 HH まで延長して「99HH 個」の有限和 110H1 - 10^{-H} を考える必要があります。これは記号の意味を取り替える操作であって、同じ記号の値が変わったわけではありません。この論点をていねいに論じた文献として Katz と Katz の論文があります(参考文献)。

注意 6.5

1010 進数(pp 進数の親戚)。 注意 3.5 で「実数では成り立たない」と書いた 999=1\cdots 999 = -1 は、1010 進整数の世界では正真正銘の等式です。そこでは二つの数の近さを「差が 1010 の何乗で割り切れるか」で測ります。1010 で割り切れるほど近い、100100 で割り切れるならもっと近い、という測り方です。この意味で 999+1=000=0\cdots 999 + 1 = \cdots 000 = 0 であり、確かに 999=1\cdots 999 = -1 です。

ここで起きているのは、99に無限に伸びる話です。私たちの 0.9990.999\ldots は右に伸びます。近さの測り方を変えると、無限に続く桁がどちら向きに意味を持つかが逆転する、というのは記憶に値する現象です。数の体系は一つではなく、何を「近い」と呼ぶかを決めた時点で世界が決まります。

結局のところ、0.99910.999\ldots \ne 1 にするには、実数を捨てるか、記号の意味を取り替えるかしかありません。そしてどちらを選んでも、「11 に限りなく近いが 11 でない数」という素朴なイメージがそのまま実現するわけではないのです。この、直感を守ろうとすると想像以上のコストが請求されるという感触は、数学はなぜ難しいのか で扱うテーマそのもの、すなわち 抽象化(定義 3.1)[数学はなぜ難しいのか] という壁の一例です。

演習 7.1

7.999=87.999\ldots = 8 を、部分和の列を書き下して示してください。

解答

nn 部分和は wn=7+0.999n 個w_n = 7 + \underbrace{0.99\cdots9}_{n \text{ 個}} です。命題 3.1 より

wn=7+(110n)=810n.w_n = 7 + (1 - 10^{-n}) = 8 - 10^{-n}.

10n>010^{-n} > 0 なのですべての nnwn<8w_n < 8、つまり 88 は上界です。次に c<8c < 8 とし、ε=8c>0\varepsilon = 8 - c > 0 と置くと、補題 3.6 により 10n<ε10^{-n} < \varepsilon となる nn が取れ、その nn に対して wn=810n>8ε=cw_n = 8 - 10^{-n} > 8 - \varepsilon = c となるので cc は上界ではありません。よって上界の最小値は 88 であり、定義 2.2 の意味で 7.999=87.999\ldots = 8 です。

演習 7.2標準

0.12343434340.1234343434\ldots(小数第 33 位以降、3434 が無限に繰り返す)を既約分数で表してください。

解答

循環しない先頭部分と、循環する部分に分けます。

x=0.12+0.00343434=12100+1100×0.343434x = 0.12 + 0.00343434\ldots = \frac{12}{100} + \frac{1}{100} \times 0.343434\ldots

(第 2 項では、循環部分の小数点を 22 桁ぶん右に戻すかわりに 1/1001/100 を掛けました)。例 3.10 とまったく同じ計算を分子 3434 で行うと、部分和は 3499(1100n)\frac{34}{99}(1 - 100^{-n}) となり、その上限は 34/9934/99 です。よって

x=12100+11003499=12100+349900=11889900+349900=12229900=6114950.x = \frac{12}{100} + \frac{1}{100}\cdot\frac{34}{99} = \frac{12}{100} + \frac{34}{9900} = \frac{1188}{9900} + \frac{34}{9900} = \frac{1222}{9900} = \frac{611}{4950}.

既約であることを確かめます。611=13×47611 = 13 \times 474950=2×32×52×114950 = 2 \times 3^2 \times 5^2 \times 11 で共通の素因数がないので、611/4950611/4950 は既約です。検算として 611÷4950611 \div 4950 を筆算すると 0.1234340.123434\ldots となり、一致します。

演習 7.3標準

sn=110ns_n = 1 - 10^{-n} とします。任意の ε>0\varepsilon > 0 に対し、「nNn \ge N ならば 1sn<ε1 - s_n < \varepsilon」となる NNε\varepsilon の式で与えてください。また ε=106\varepsilon = 10^{-6}ε=1/2026\varepsilon = 1/2026 のそれぞれについて、条件を満たす最小の NN を求めてください。

解答

1sn=10n1 - s_n = 10^{-n} なので、条件は 10n<ε10^{-n} < \varepsilon、すなわち 10n>1/ε10^{n} > 1/\varepsilon、両辺の常用対数を取って n>log10(1/ε)n > \log_{10}(1/\varepsilon) と同値です。したがって

N=log10(1/ε)+1N = \lfloor \log_{10}(1/\varepsilon) \rfloor + 1

と取れば十分です(\lfloor \cdot \rfloor は床関数)。10n10^{-n}nn について単調減少なので、nNn \ge N でも条件は保たれます。

ε=106\varepsilon = 10^{-6} のとき、10n>10610^{n} > 10^{6} が必要十分で、これは n7n \ge 7 と同値です。よって最小の NN77。実際 n=6n = 6 では 106<10610^{-6} < 10^{-6} が偽なので 66 では足りません。

ε=1/2026\varepsilon = 1/2026 のとき、条件は 10n>202610^{n} > 2026 です。103=1000<202610^{3} = 1000 < 2026104=10000>202610^{4} = 10000 > 2026 なので最小の NN44 です。つまり 0.99990.9999 の時点で、すでに 11 との差は 1/20261/2026 より小さくなっています。

演習 7.4

10.999=0.00011 - 0.999\ldots = 0.000\ldots1 である」という主張を検討してください。0.00010.000\ldots1 を無限小数として真面目に解釈しようとすると何が起きるかを、定義 2.2系 5.2 に照らして説明してください。

解答

定義 2.2 によれば、無限小数とは各自然数 kk に「第 kk 桁の数字 aka_k」を対応させたものです。0.00010.000\ldots1 と書くとき、数字 11 が置かれた位置を mm としましょう。可能性は二つです。

(i)mm が自然数である場合。 このとき am=1a_m = 1、他はすべて 00 ですから、部分和は n<mn < m00nmn \ge m10m10^{-m} となり、上限は 10m10^{-m} です。これは正の数です。一方 定理 3.7 より 10.999=01 - 0.999\ldots = 0 なので、10m=010^{-m} = 0 となって矛盾します(10m>010^{-m} > 0)。

(ii)mm が「すべての自然数より後ろ」である場合。 そのような桁は 定義 2.2 の枠組みに存在しません。桁の位置は自然数で指定すると決めたからです。N\mathbb{N} に最大元がない以上、「最後の桁の次」は記法の外にあります。

仮に(ii)を実現する数 δ\delta を無理に導入したとすると、δ\delta はすべての mm について 0<δ<10m0 < \delta < 10^{-m} を満たさねばならず、系 5.2 によりそのような実数は存在しません。つまり 0.00010.000\ldots1 は、実数の中では何も指していない記号です。実数の外に出て無限小を持つ体系(注意 6.4)を採用すれば δ\delta 自体は存在させられますが、その場合も 0.9990.999\ldots の値は依然として 11 のままで、差が δ\delta になるわけではありません。

  • 高木貞治『解析概論』岩波書店 — 第 1 章(実数の連続性と数列の極限。無限小数と実数の対応が扱われています)。
  • 杉浦光夫『解析入門 I』東京大学出版会、1980 — 第 I 章(実数の公理系、上限・下限、アルキメデスの原理)。
  • W. Rudin, Principles of Mathematical Analysis, 3rd ed., McGraw-Hill, 1976 — Chapter 1(The Real and Complex Number Systems。実数体の構成と上限性質)。
  • D. Tall and S. Vinner, “Concept image and concept definition in mathematics with particular reference to limits and continuity”, Educational Studies in Mathematics 12 (1981), 151–169. DOI: 10.1007/BF00305619
  • K. U. Katz and M. G. Katz, “When is .999… less than 1?”, The Montana Mathematics Enthusiast 7 (2010), 3–30. arXiv:1007.3018
  • F. Q. Gouvêa, p-adic Numbers: An Introduction, 3rd ed., Springer, 2020 — Chapter 1・Chapter 3(pp 進的な近さの測り方と、左に無限に伸びる展開)。

方針。 定理 6.1 のうち、難しいのは「二つの展開があるなら有限小数」の向きです。二つの展開が最初に食い違う桁に注目し、値を上下から挟みます。挟んだ結果が一致してしまうので、不等式はすべて等号でなければならず、そこから桁の形が決まります。

逆向き(有限小数なら二つの展開を持つ)。 x=0.a1a2akx = 0.a_1a_2\cdots a_kak0a_k \ne 0k1k \ge 1)とします。ひとつ目の展開は a1a2ak000a_1 a_2 \cdots a_k 000\cdots です。ふたつ目は、第 kk 桁を ak1a_k - 1 に下げ、以降をすべて 99 にしたものです。実際、例 3.8 と同じ計算で、kk 桁目以降の寄与は

(ak1)10k+j>k910j=(ak1)10k+10k=ak10k(a_k - 1)\cdot 10^{-k} + \sum_{j > k} 9 \cdot 10^{-j} = (a_k - 1) \cdot 10^{-k} + 10^{-k} = a_k \cdot 10^{-k}

となり、値が変わりません(第 2 の等号で、99 の無限列の値が 10k10^{-k} であること、つまり 定理 3.710k10^{-k} 倍したものを使いました)。x=1x = 1 のときは 1.0001.000\ldots0.9990.999\ldots が対応する二つです。

順向き(二つの展開があるなら有限小数)。 同じ xx に対する相異なる二つの展開 (ak)(a_k)(bk)(b_k) があるとします。相異なるので、ambma_m \ne b_m となる添字が存在し、そのうち最小のものを mm とします(自然数の空でない部分集合には最小元があります)。必要なら二つの展開の名前を入れ替えて、am>bma_m > b_m、すなわち ambm+1a_m \ge b_m + 1 としてかまいません(桁の数字は整数だからです)。P=k<mak10k=k<mbk10kP = \sum_{k < m} a_k 10^{-k} = \sum_{k<m} b_k 10^{-k}mm の最小性より両者は一致します)と置きます。

(ak)(a_k) 側からの下からの評価。すべての項は非負なので、

xP+am10mP+(bm+1)10m.x \ge P + a_m 10^{-m} \ge P + (b_m + 1) 10^{-m}.

(bk)(b_k) 側からの上からの評価。bk9b_k \le 9 を使うと

xP+bm10m+k>m910k=P+bm10m+10m=P+(bm+1)10mx \le P + b_m 10^{-m} + \sum_{k > m} 9 \cdot 10^{-k} = P + b_m 10^{-m} + 10^{-m} = P + (b_m + 1)10^{-m}

です(定理 3.710m10^{-m} 倍した式を使いました)。

上下の評価が同じ値になったので、途中の不等号はすべて等号です。等号が成立する条件を読み取ると、

  • am=bm+1a_m = b_m + 1
  • (ak)(a_k) 側で k>mk > m の項の寄与が 00、つまり k>mk > m のすべてで ak=0a_k = 0
  • (bk)(b_k) 側で k>mk > m のすべてで bk=9b_k = 9

が同時に成り立ちます。とくに x=P+am10mx = P + a_m 10^{-m} は第 mm 桁で打ち切られた有限小数であり、x=q/10mx = q/10^{m}qq は整数)と書けます。これで有限小数であることが示され、同時に「二つの展開はちょうど 00 尾と 99 尾の対である」ことも従います。展開が三つ以上あり得ないのも、この議論から分かります。二つ取れば必ず上の形になるので、00 尾と 99 尾の二種類しか候補がないからです。

この記事の誤りを報告する ・運営: 夢現技研合同会社料金プラン利用条件特定商取引法に基づく表記

© 2026 夢現技研合同会社 ・本文の LLM への入力は自由です。コード例は MIT ライセンスです。