なんで 0.99999… = 1 なの?

昔、疑問に思っていた事を、ふと思い出した

0.99999… = 1

これは本当だろうか?
正しい気もした、間違っているきもした。

  1. 1 / 3 = 0.33333…
  2. 0.33333… x 3 = 0.99999…
  3. 1 / 3 x 3 = 1
  4. よって、0.99999… = 1 は正しい
  1. 0.9 < 1
  2. 0.99 < 1
  3. 0.999 < 1
  4. このように、0.9 の後にどれだけ 9 を付け足しても 1 より小さい
  5. よって、0.99999… < 1
  6. よって、0.99999… = 1 は間違い

どちらの考え方も一見正しいように見えるが、正反対の結論になってしまった。

実は、この議論を始めるために最初に確認しなくてはいけない事がある。
0.99999… とは何だう?

0.9 の後に 9 を無限個、続けた数字?
「無限」って整数だったの?
整数って事は、偶数か奇数のどちらかだ。
「無限」って偶数?奇数?

「無限」について数学的に正しく扱う事は簡単ではない。
だが、ここが上の議論で一番重要な点だ。
0.33333… や 0.99999… を正しく定義できれば、このパラドックスは理解できる。

「無限」という言葉を使うと難しくなるので、その言葉を使わずに 0.99999… を定義してみよう
以下のような数列 an を考える。

a1 = 0.9
a2 = 0.99
a3 = 0.999

ちなみに、数学的に厳密に書くと

a1 = 0.9
ak+1 = ak + (9/10k+1)

となる。
(まあ、表現が難しくなっただけで今回の記事には関係無いが)

さて、この数列 an は以下の 2 個の特徴をもつ。

i) どんな自然数 n においても、an < 10
ii) どんな自然数 n においても、an < an+1

i) と ii) を真面目に証明するとこの記事が長くなりすぎるので、ここは「当たり前」で許してほしい。

では、i) と ii) の条件を満たす数列のグラフはどんな形になるだろう?
(今は an の詳しい事は一回忘れて、「i) と ii) の条件を満たす数列」のグラフを考えよう。)
例えばこんな形になるのではないか?

上図を見ると直観的に分かるかもしれないが、an は「n を大きくするとある数に近づく」という性質を持っている。

なぜなら
ii) どんな自然数 n においても、an < an+1
より、an は、n を大きくすると
「際限なく大きくなる」
「上限となる、ある数に近づく」
のどちらかである。

そして、「際限なく大きくなる」は
i) どんな自然数 n においても、an < 10
と明らかに矛盾する。

この「上限となる、ある数 x」を先ほどの図に加えるとこのようになる。

では、この x について厳密な定義をしてみよう。
(「n を大きくすると近づく数」という表現は数学的には曖昧すぎる)

先ほど an について
i) どんな自然数 n においても、an < 10
と書いた。
当たり前だが、この条件はもっと厳しくする事ができる。
例えば、

i’) どんな自然数 n においても、an < 5
i”) どんな自然数 n においても、an < 3

これはどちらも正しい。

この条件を一番厳しくした時の値で x を定義する。
i), i’), i”) では 10, 5, 3 という数字を使ったが、もっと小さい数を使う事も出来る。
この使用可能な数の中で、最小値を x とするのだ。
正確に書くと以下のようになる。

a)
どんな自然数 n においても、an < k を満たす数 k は 2 個以上存在する。
x はそのような k の中の最小値

別の言い方をすると、こんな風になるかもしれない。

b)
どんな自然数 n においても、an < x。
ただし、y < x を満たす全ての数 y において、 y < an となる n をが 1 個以上存在する

x の定義は上記の a), b) どちらでもよい。

数学的にはいい加減だが少しだけ直観的な表現にすると、

c)
x とは 0.9 の後に 9 を多く続けた数より、少しだけ大きい数
(「多く」とは、100万でも 10億でも良い)

とも言えるだろう。
「少しだけ大きい」という部分がポイントだ。

そして、この数 x を 0.99999… と名付けよう。

すると、「0.99999… = 1」とは、

a) の表現を用いると
0.9 の後に 9 をいくつ続けた数よりも大きい数は 2 個以上存在する。
そのような数の最小値は 1 である

b) の表現を用いると
0.9 の後に 9 をいくつ続けても 1 より小さい。
1 より小さい全ての数 y について、0.9 の後に 9 をいくつか続けると y より大きくなる事がある

c) の表現を用いると
0.9 の後に 9 を多く続けた数より、少しだけ大きい数は 1 である

という事になる。

どうだろう。
「”0.9 の後に 9 を無限個繋げた数” = 1」
という表現とは全然違う印象を受けるのではないか?
そして、この表現ならば直観的にも簡単に納得できるだろう。

では、最初のパラドックスに戻ってみよう。

長くなるので、以下では c) の表現のみを用いてみる

  1. 1 / 3 = 0.33333…
    1 / 3 = “0.3 の後に 3 を多く続けた数より、少しだけ大きい数”
  2. 0.33333… x 3 = 0.99999…
    “0.3 の後に 3 を多く続けた数より少し大きい数” x 3
    = “0.9 の後に 9 を多く続けた数より少し大きい数”
  3. 1 / 3 x 3 = 1
  4. よって、0.99999… = 1 は正しい
    “0.9 の後に 9 を多く続けた数より少し大きい数” = 1 は正しい。

これは全て正しい。

1 / 3 = "0.3 の後に 3 を多く続けた数より、少しだけ大きい数"

ここが直観に反するかもしれないが、実際には正しい。
(数学的に厳密な証明は、今回は控える)

  1. 0.9 < 1
  2. 0.99 < 1
  3. 0.999 < 1
  4. このように、0.9 の後にどれだけ 9 を付け足しても 1 より小さい
  5. よって、0.99999… < 1
    “0.9 の後に 9 を多く続けた数より少し大きい数” < 1)
  6. よって、0.99999… = 1 は間違い
    “0.9 の後に 9 を多く続けた数より少し大きい数” = 1 は間違い

これは間違っている。

0.9 の後にどれだけ 9 を付け足しても 1 より小さい
"0.9 の後に 9 を多く続けた数より少し大きい数" < 1

この間に議論の飛躍がある。
ここで間違えているのだ。

この疑問を始めて感じたのは、小学生の時だったと思う。
その際、周りの大人たちに聞いたが納得のいく解答は得られなかった。
(今にして思うと、大人にも良く分からなかったのかもしれない)

小学生だったころの自分にも分かるような説明を考えてみたが、どうだろうか。

台所でできる核反応実験

面白い記事を見つけた。

水を2回沸騰させてはいけないという理由がここに!

… 同じ水を何度も沸騰させると、酸素の構造が変化し、…

… 水を何度も何度も沸騰させていると、化学構造変化の結果として、ヒ素や硝酸塩、フッ化物などの危険性のあるガスや毒性物質が生じる可能性があります。フッ化物が神経と脳に与える悪影響については多くの研究で証明されています。…

非常に興味深い話だ。もちろん、科学的な興味ではない。

人によっては説目するまでも無い事だと思うが、確認のために書いておこう。

まず、ヒ素の組成式は As、純粋なヒ素以外に、ヒ素化合物の事を「ヒ素」という事もあるかもしれないが、いずれにせよ As という原子を含んでいる。

同様に硝酸塩は硝酸 (HNO3)、と塩基性(アルカリ性)物質の化合物。フッ化物はフッ素 (F) を含む化合物。

どれも、純粋な水 (H2O) に含まれていない原子が必要だ。

不純物という言葉で好意的に解釈しようにも、前の部分で「酸素の構造が変化し」と明言している。

もっとも、不純物という言葉で簡単に片付けられるのは HNO3 だけだろう。

As なんて大変だよね。単体だろうが化合物だろうが超危険だ。飲料用の水ならば As 原子の絶対量で規制を受けて叱るべきだろう。化学変化以前の問題。

フッ化物も同様に無理がある。フッ素は電気陰性度が一番高い原子であり、他の物質と強く結合しやすい。例えフッ素原子が微量に存在していたとしても、既に他の物質と結合して非常に安定した状態になっているはずだ。常識的な飲料水に含まれている物質と 100 度前後の温度で人体に影響を与えるような化学変化が起きるとは思えない。

そして、極めつけは「フッ化物が神経と脳に与える悪影響については多くの研究で証明されています。」の一文。

歯医者さんではフッ素コーティングしてるのはどうなの?

そりゃ、フッカ物の中には人体に悪影響を与える物もありますけどね。もちろん、そういう研究も有るでしょう。

あえて誤解を招く書き方というか、「お前、分かっていて書いてるだろう」と記事を書いた人を問い詰めたい。

と、いうわけで水素水もビックリのとんでも記事に見えるわけだが、俺は「こいつ馬鹿だ」とディスっているだけの意識が低い男ではない。ここで華麗な解決策を考えてこそ、不可能を可能にする男の称号に相応しい。

記事の言うとおりに、例えば酸素をどうにかしてヒ素を作ることは不可能だろうか?

いや、できる!

どんな原子であっても、核反応が発生すれば別の原子になる。当然、酸素原子 (O) が核反応を繰り返せば、いつかヒ素原子 (As) が出来る可能性も有る。

ただ、核反応にはいくつか問題がある。まず、酸素原子から ヒ素原子を作るにはどこかで核融合が必要だ。核分裂ではない、核融合だ。

核反応には大きく 2 種類有る。核分裂と核融合だ。そして、核融合には非常に高い温度が必要なので難しい。

そのため、原子力発電など、現在の人間が使っているのは基本的に核分裂に限られている。核融合を使っている唯一の例外は水素爆弾(水爆)だ。(ちなみに、こいつは起爆するための温度を得るために核爆弾を使っている。)

その上ヒ素の原子番号は 33。ここも詳細を省くが、原子番号 33 の原子を核融合で作るために必要な温度は、水素原子同士の核融合でヘリウム (原子番号 2) を作成する水爆よりもずっと高い。

この反応を水が沸騰する温度で補うにはどうしたら良いか?

「圧力釜を用いてで水を 100 度以上にする」という案は魅力的だが、少し無理がある。1000 度まで加熱したところで状況は変わらない。引用元の記事は台所の料理をしている時の注意を述べているので、圧力鍋で核融合に必要な温度を補えというのは、あまりに馬鹿げている。

じゃあ、結局どうしたら良いのか?

待つしかない。

火をつけていなくとも遺跡から出てくる木が炭化しているように、悠久の時間がすぎれば、どんな反応でも少しずつ進む。

ここで次の問題だ。残念な事にヒ素原子は各エネルギー的に安定では無い。せっかく少量のヒ素が出来たとしても、人間に影響を与える程のヒ素が貯まる前に、出来上がったヒ素が再度核反応を起こして他の原子になってしまうだろう。残念ながらこの対策はすぐには思いつかなかった。

ついては、この問題を解決するための研究を行いたいので、政府は俺に予算をつけてはどうだろうか?

この研究がうまく行けば、常温核融合が大きく近づく。原発停止によるエネルギー問題なんて一発解消できるだろう。

研究と並行して行う実験には悠久の時間がかかる。予算の一括支払いが難しい場合は分割でもよい。とりあえず手付金として一億万年の給料を頂きたい。

もし予算をつけてくれるのならば、俺は命をかけてこの研究を行う事を誓う。研究成功の暁には、俺は反粒子と対消滅する事も厭わない。その対消滅エネルギーは東京電力に寄付する事を遺書としてここに残す。

単位が違う値は計算できるの?

知り合いの高校生と物理話していたら、途中で面白い質問が出た。

「単位の違う物を計算して良いんですか?」

一瞬、質問の意図が分からなかったので聞いてみると、学校の先生が「単位が違う物は計算できない」と言っていたとの事。う〜ん、先生が本気でそんな事言うとは思えないんだけどな。彼女が先生の言ったことの意味を勘違いしたか、先生が語弊のある言い方をしたのか。

正解をいうと、「単位の違う値同士の足し算、引き算はできない」、「単位の違う値同士の掛け算、割り算はできる」というのが正しい。

簡単な例から考えてみよう。当たり前からスタートして難しい例にたどり着くのは物事を理解する良い方法だ。

5 m の棒と 2 m の棒を考える。

両方とも単位は同じなので、足し算、引き算、掛け算、割り算何でもできるのだが、ここでは例として足し算と掛け算だけ考えよう。
(1): 5 (m) x 2 (m) = 10 (m x m)
(2): 5 (m) + 2 (m) = 7 (m)
(1) の式では、後の事を考えて m2 と書かずにあえて m x m と書いてみた。

計算のイメージとしては、例えばこんな感じだろう。

さて、では上記の例で単位を変えてみよう。

具体的には、2 m を 200 cm にしてみる。

掛け算は
(1'): 5 (m) x 200 (cm) = 1000 (m x cm)

今、1 cm = 1/100 m なので、
1000 (m x cm) = 1000 (m x 1/100 m) = 1000 x 1/100 (m x m)

これを (1′) と合わせると、
(1''): 5 (m) x 200 (cm) = 10 (m x m)

となり、(1) と同じ値になった。短い方の棒を 2 m と考えても 200 cm と考えても同じ値が出る。ここまでは、当たり前の事が当たり前にできる事の確認だ。

では、足し算はどうだろう?5 m と 200 cm を無理やり足し算してみる。
(2'): 5 (m) + 200 (cm) = 205 (m + cm) --- ???

う〜ん、無理やり計算してみると、おかしな値が出てきてしまった。

5 m の棒と 200 cm の棒を足し算すると 7 m になるはずだ。しかし、1 cm = 1/100 m という関係式をどう使っても 205 という数字から 7 という数字を導出できそうにない。

厳密な説明ではないが、単位の違う値の掛け算はできるが割り算は出来ない事が直感的に分かるだろう。

と、ここまで書いて思ったのだが、俺自身も単位の違う値の足し算が何で出来ないのか厳密な説明って知らない。高校生相手に偉そうな事言いながら、俺もまだまだだなと思った今日このごろ。