なんで 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

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

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

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

標準偏差と4部位数って何?

高校生の知り合いが、学校で標準偏差や4部位数について習ったらしい。で、「試験に出るから教えて」と言われたのだが、そこで面白い質問が出た。
「そもそも、標準偏差とか4部位数って何ですか?」
なるほど、学校では計算方法だけ習ってその意味は教わらなかったのか。

学生さんにわかりやすいよう、成績分布図で考えてみよう。

例えば、100点満点のテストであなたが 70 点を取ったとする。でも、この数字だけではあなたの成績が良かったのか悪かったのか何も分からない。そこで、統計を使う。

真っ先に思いつく統計データは平均だ。「平均点が 50 点のテストで 70 点を取った」と言えば、少なくともあなたの成績は悪くない事がわかる。ただ、平均からは「普通より上か下か」というザックリとしたデータしか出てこない。(「普通」の定義はは置いといて。)例えば、70 点という成績が上から 1/3 なのか、1/10 なのか、そういった情報もあると便利だ。

「じゃあ、○人中×番のように順位を言えば良い」と言う人もいるだろう。それはある意味正しい。

理想的なテストと点数分布だと、下記のようになっているだろう。(横軸が点数、縦軸が人数。)
正規分布
Wikipedia 「正規分布」より引用

上記のようなキレイな分布図の場合、順位を言うことも悪くないだろう。この場合の欠点と言えば、少し面倒な計算をする必要が有る事くらいだ。例えば「1205 人中 352 位」と言われたら、「上位 1/4 から 1/3 くらい」という計算をするだろう。また、2 人の差を見るときはもっと面倒だ。「上から 1/7 の人と 1/5 の人の差は?」と言われたら、1/5 – 1/7 を計算しなくてはいけない。

しかし、通常はもっと深刻な問題がある。それは、成績分布が上図のようにキレイなグラフにならない事だ。実際には山の位置が平均からずれていたり、山が 2 個あったりする。山の付近では点数が 1 点変わるだけで順位が大きく変わってしまう。そのため、実際はほんの少しの差なのに大きな差があるように見えたり、逆の事もある。山の位置が「平均付近に 1 個」と分かっていれば頭の中で補正する事も可能だろうが、「山がどこに、いくつあるか分かりません。」という状況だと補正のしようがない。

その欠点を補うのが標準偏差だ。標準偏差は、実際の点数分布を無理やり上図のような図に近似したとき、あなたがどの程度の位置にいるかを示してくれる。

ちなみに、偏差値は標準偏差を 50 前後に見えるように数字をいじっただけのもの。
上手の 1 σ が偏差値 10 に相当し、中央が偏差値 50 だ。つまり、偏差値 40 – 60 の間に全体の 66.27 % が入り、30 – 70 の間に全体の 95.45 % が入り、20 – 80 の間に 99.73 % が入る。
だから、「偏差値 60」といえば、実際の点数分布を理想的に近似した場合の上位 17% の位置という事になる。
(ちなみに、日常で 100 前後使うことが多いので、この程度の数字だとイメージしやすい。そのため、何かの指標を 100 前後になるよう調整することは良くある。天気予報の降雨確立が % で表記されているのもこの理由だろう。)

また、2 人の差を見るときも、標準偏差ならば単純に引き算すれば良い。面倒な計算や山の位置を気にする必要も無い。最初は少し難しく思えるかも知れないが、見慣れると標準偏差は非常に直観的でわかりやすい。

さて、標準偏差というのは中々便利なのだが、もちろん欠点だってある。例えば大量のサンプルがないと統計的に意味のある値を出せないことだ。データのサンプル数が極端に少ないと平均に意味がない事は分かるだろう。標準偏差は平均よりもずっと多くの情報を提供する。(平均は山の位置だけなのに、標準偏差は山の位置と形を提供するんだから当然だ。)逆に言うと、標準偏差を計算するためにはそれだけ多くの情報、つまりサンプル数を提供する必要があるのだ。

では、サンプル数が少ないと具体的にどんな情報を得ることが難しいのだろうか?例えば、グラフの平均から外れた位置の情報は取得が難しい。

例えば、40 人のクラスでテストをした場合、1 位の人がどの程度すごいのかを測る事は難しい。もしかすると 1 万人に 1 人の天才が紛れているかもしれないし、たまたま上位層が薄くて、本当は 10 人に一人程度の成績かもしれない。だって、上位の情報を得るために重要なのは、同様に成績上位者達の情報だ。しかし、1 位、つまり上位 1/40 の情報を推測したくともサンプルは 1 人しかいないし、妥協して上位 1/10 の情報から推測しようにも、やっぱりサンプルは 4 人しかいない。これでは統計的な情報を得ることは難しい。

だが逆に、クラスの真ん中付近の情報ならばそれなりにサンプル数がそろっているので何となく把握できる。

そんな時に使用するのが 4 部位数だ。4 部位数ではサンプル数が少なくて良くわからない上下の端のデータを切り捨て、「上位 1/4, 中央、下位 1/4 がどの程度の位置か?」を指摘する。

直観で理解できるよう、あえて曖昧な表現を多用したが、うまく説明できただろうか?
最初に質問してきた知り合いのように、悩める高校生の助けになればと思いちょっと書いてみた。