読者です 読者をやめる 読者になる 読者になる

『0.999・・・=1』 の理解の仕方〜10進法の定義に戻って考える

0.999・・・=1?

あれは小学生のころ...それとも中学生のときでしょうか.
\begin{align}
0.999\cdots =1
\tag{1}
\label{eq:0.999=1}
\end{align}
という式に出会いました.



学校で先生に習ったのか,友達に教えてもらったのか...
あるいは「数の悪魔」という本で読んだのが最初だったのかもしれません.

数の悪魔―算数・数学が楽しくなる12夜

数の悪魔―算数・数学が楽しくなる12夜

  • 作者: ハンス・マグヌスエンツェンスベルガー,丘沢静也
  • 出版社/メーカー: 晶文社
  • 発売日: 2000/04/01
  • メディア: 単行本(ソフトカバー)
  • 購入: 13人 クリック: 141回
  • この商品を含むブログ (55件) を見る

とにかく,私はこの式に悩まされ続けました.
最初に「解決したことにした」のは高校生のとき,極限の授業でのことでした.
無限等比級数の公式を使って
\begin{align}
\sum_{k=1}^\infty\frac{9}{10^k}=1
\end{align}
を導いたのです.

・・・しかし,「解決したことにした」と書いたように,心の中はモヤモヤとしていました.
つまり,上では
\begin{align}
\text{「$0.999\cdots$とは$\displaystyle\sum_{k=1}^\infty\frac{9}{10^k}$である」}
\end{align}
としているわけですが,これが天下り的に与えられたようにしか思えなかったのです.

いったい,どこのだれが「$0.999\cdots$とは$\displaystyle\sum_{k=1}^\infty\frac{9}{10^k}$である」であることを保証してくれているのでしょう?

実数の表し方

この問題の解決には,実数を表記するルールに立ち戻る必要があります.
つまり,「10進法とは何か」を思い出さなくてはなりません.

私達が実数を表すのに用いる「10進法」とは以下のように実数を表記するルールでした:

10進法の定義
級数 \begin{align} \sum_{k=-\infty}^N a_k 10^k \qquad(a_k=0,1,2,3,4,5,6,7,8,9) \end{align} で表される実数があるとき, \begin{align} a_N a_{N-1}\cdots a_1 a_0.a_{-1}a_{-2}\cdots \end{align} と記す(.は小数点).

小学校では$a_k$を「$10^k$の位」と呼び,$a_{-k}$を「小数点第$k$位」と呼ぶのだと教わりましたね!


つまり,
\begin{align}
\text{「$0.999\cdots$とは$\displaystyle\sum_{k=1}^\infty\frac{9}{10^k}$である」}
\end{align}
とは,「10進法(の定義)」が保証してくれていたのです.

やっと納得できた!

以上より,式(\ref{eq:0.999=1})は

実数1を10進数で表す場合,$0.999\cdots$と$1.000\cdots$の2通りがある・・・(※)

ことを表していることがわかりました.



つまり「実数"1"を10進法で表すと,2通りの表記がある」とを言っているに過ぎないわけです.
(これを,「過ぎない」と思えるかはは人それぞれかもしれませんが...)

・・・納得できたでしょうか?

(※)の確認

一応,上の(※)を確かめてみましょう.
そのためには
\begin{align}
1
&=\sum_{k=-\infty}^{-1} 9\cdot 10^k \tag{2}\label{eq:1=0.999}\\
1
&=1\cdot 10^0+\sum_{k=-\infty}^{-1} 0\cdot 10^k \tag{3}\label{eq:1=1.000}
\end{align}
の2つを示せばOKです.
式(\ref{eq:1=1.000})は明らかです.
式(\ref{eq:1=0.999})は,右辺の無限等比級数 (初項0.9, 公比0.1) を計算すれば1になることがわかります.//

参考1

2進数の定義

コンピュータで重要である2進数も同様で,
級数
\begin{align}
\sum_{k=-\infty}^N a_k 2^k
\qquad(a_k=0,1)
\end{align}
で表される実数を
\begin{align}
a_N a_{N-1}\cdots a_1 a_0.a_{-1}a_{-2}\cdots
\end{align}
と記すのが2進数です.

参考2

10進数における「$0.999\cdots=1.000\cdots$」のようなことは,当然$N$進数で共通して起こります.
例えば,
\begin{align}
\sum_{k=-\infty}^{-1}1\cdot 2^k
=1
\end{align}
であることから,2進数で実数1は$0.111\cdots$と$1.000\cdots$の2通りで表わされることになります.

練習問題

$N$進数において,実数1を2通りの方法で表してみましょう.