数学の無限を比較する?実数の集合と自然数の集合を対角線論法を使って比較する

2018年8月26日

この記事ではこんな人に向けて書いています
  • 数学的な雑学に興味がある人
  • 集合論の初歩を勉強中の人
  • 数学が無限をどう扱っているのかを知りたい人

このページでは、対角線論法というものを使って、実数の濃度が自然数の濃度よりも大きいということを解説します。

自然数も無限集合だし、実数も無限集合です。無限に要素を持つような集合の濃度を、どうやって比較したらいいのかというのは難しい問題です。

ちょっとテクニカルな考え方を必要とするのですが、数式は登場しませんので、数学が苦手な人でも納得してもらえるんじゃないかと思います。

集合の基本を簡単におさらいしましょう

まず、集合とは何かを簡単に説明しておきます。※不要な方は、この節は飛ばしてください。

集合とはグループです。人間とか、犬とか、ラーメンとか、世の中には様々なグループがありますね。

人間全員をグループにまとめたとすれば、それは人間の集合です。

 

そのため、集合とは一般名詞で表されるような概念と同一と誤解される場合があります。実際は、このような概念とは違うものです。

集合とは、何かしらの要素を集めたグループです(実は、空集合という集合もあるので、何の要素も持たないようなグループも集合だったりするのですが、ここでは例外として忘れておいてください)。

その要素は、何でもかまいません。

 

織田信長と、カレー全てと、いま目の前に見ているモニター(もしくはスマホ)と、ある日に行われた花火大会を要素に持つような集合を作ることも出来ます。

たぶん、これに対してすっきりしたグループ名を与えることは出来ないでしょう。

しかし、これも普通の集合です。

 

さて、このページでは、集合の大きさを比較してみせるわけですから、その方法も解説しておいた方がいいでしょう。

集合の大きさを比較するには、その集合に含まれている要素の数を比較すればいいのです。

 

あるいは、玉入れと同じやり方もできます。

赤組と白組で、どちらがたくさん玉を入れることが出来たかを調べるには、「ひとーつ、ふたーつ、みーつ」というように、両チームが同時に一つずつ玉を放り上げていきます。

先に放れなくなった方が、入っていた玉が少ない、ということですよね。

 

ですから、比較したい集合から同時に一つずつ要素を取り出して対応させていき、先に取り出す要素が尽きてしまった集合の方が小さな集合だったと言うことが出来ます。

原始的ではありますが、集合の比較もこうやって行うこともあります。

 

無限集合を比較するための対角線論法

無限集合というのは、要素を無限に持つ集合です。

自然数や整数、実数など、様々な無限集合が知られています。

 

当然ながら、これらの集合の要素を比較するために、玉入れの要領で先に要素が尽きた方が小さい、という考え方は成立しません。

なにしろ、要素は無限にあるのですから、いつまでだって続いてしまいます。

 

そこで登場するのが対角線論法です。

これが、一回説明を受けただけでは、なかなか飲み込めないテクニカルなものなのです。

時間はかかるかも知れませんが、読み直しながら、一つ一つ理解を進めてみてください。

 

まず以下の図をご覧ください。

これは、自然数と実数の比較を要素4つ分だけやってみた表です。

 

玉入れの要領で、自然数チームから\(1\)を取り出して、実数チームから\(0.0001\)を取り出しました。

続いて自然数\(2\)に対しては実数の\(0.0010\)を対応させるというような感じです。

 

もちろん、両チームとも、まだまだ無限に要素が残っていますので、この4つの要素を比較しただけでは、どちらの集合の方が要素が多いのかは不明です。

 

ですが、この比較だけで、実数の方が大きな集合であることが理解できるようになります。どうすればよいでしょうか?

それには、赤い数字の部分に注目してください。もう一度以下に示します。赤い部分の数字が急所です。

この赤い数字を写してください。

 

最初は\(0.0001\)の小数点第一位である\(0\)が囲われてますよね。

次は\(0.0010\)の二番目の\(0\)。

その次は、\(0.0011\)の三番目の\(1\)。

最後は\(0.0100\)の四番目の\(0\)です。

これを、繋げて小数部分にすると\(0.0010\)になります。

 

\(0.0010\)というのは実数グループから取り出された要素の中に含まれていますか?

いますね。でもこれは偶然です。含まれるときもあれば含まれないときもあります。

 

では、この\(0.0010\)の各位を別な数に書き換えたらどうなるでしょうか?

今度も\(0\)と\(1\)だけを使うことにしましょう。

他の数を使ってしまうと、「そりゃ、最初は\(0\)と\(1\)しか使ってないのに、他の数を使ったら新しい数が生まれるのは当たり前だろ」って誤解されてしまいますから。

 

というわけで、\(0.0010\)を\(0.1101\)に書き換えます。

これは、でたらめに書き換えたのではなく、小数点以下の各位を、別な数に書き換えるというルールに従っています。

今は\(0\)か\(1\)しか使わないと決めていますので、\(0\)は\(1\)に、\(1\)は\(0\)に書き換えるというルールです。

 

さて、\(0.1101\)というのは、実数チームから取り出された要素の中に含まれているでしょうか?

いませんね?

つまり、この\(0.1101\)というのはまだ取り出されていない、新しい実数なのです。

 

でも、

「そんなの偶然じゃないか?」

「たまたま今回はそうなっただけじゃないのか?」

そういう疑問が当然湧いてくるはずです。

 

ところがそうではないのです。

これは、偶然そうなったのではなく、このやり方をすれば、必ずまだ取り出されていない新しい数を作ることが出来るようになっているのです。

 

どうして対角線論法は新しい数を作れるのか

私たちは、実数グループから取り出した四つの要素の各位から数を取り出して繋げ、\(0.0010\)という実数を作り出しました。

そして、その各位を書き換えることで、0.1101という実数に変化させました。

 

これにどんな意味があるのでしょうか?

これまでの手続きから言って、実数チームの最初の要素である\(0.0001\)と\(0.1101\)を比較した場合、必ず小数点第一位が一致しないことが分かるでしょうか。

 

なぜならば、\(0.1101\)は\(0.0010\)の各位を変化させたものであり、\(0.0010\)の小数点第一位は、実数チームの最初の要素の小数点第一位をコピーして持ってきたものだからです。

つまり、\(0.1101\)の小数点第一は、実数チームの最初の要素を変化させたものです。

ですから、\(0.1101\)と\(0.0001\)を比較した場合、小数点第一位だけは絶対に一致し得ないのです。

 

では、実数チームから二番目に取り出された要素の場合はどうなるでしょうか?

事情は一緒です。

\(0.1101\)の小数点第二位は、二番目の要素を変化させたものです。

それ故、新しく作られた数と、二番目の要素とを比較した場合、小数点第二位が一致することはあり得ません。

 

この調子で、三番目と四番目の要素とも異なる数であることが確定します。

 

というわけで、対角線から取り出した数字を使い作った数の各位を書き換えた新しい数は、すでに要素として取り出されたいかなる数と比較しても、絶対にある一カ所では異なる数であることになります。

よって、その数は、まだ要素として取り出されていない実数なのです。

 

そしてこのことは、取り出す要素の数に左右されません。

今回は4つの要素しか取り出しませんでしたが、10個の要素で比べてみても一緒です。

10個の要素を取り出すとこんな感じになります。

 

この場合、対角線の赤い数字をコピーすると、\(0.1452544750\)になります。

この各位を別な数に書き換えます。

違う数にすれば何に書き換えてもかまわないんですが、今回は+1することにしましょう。

すると以下が新しい数です。

\(0.2563655861\)

 

この数は実数チームから取り出された要素の中に含まれていません。

含まれ得ません。絶対に、この数はまだ取り出されていない、残された数なのです。

 

先ほどと同じ理由で、この新しい数は、取り出されたどの要素と比べても、少なくともある一カ所では別な数になっているからです。

 

これが対角線論法です。

これにより、

重要ポイント

自然数と実数で1対1の対応が取れたと仮定したとしても、対角線論法によって実数にはまだ使われていない数が残されていることが証明できるから、実数の集合の方が自然数の集合より大きい

と言えるようになるのです。

 

いくつかの問題と注意点

以上で、数学としての解説はおしまいです。

しかし、気になることがありませんか?

それについていくつか答えておきたいと思います。

 

最後に「自然数と実数で1対1対応が取れたと仮定して」という話をしました。

1対1対応というのは、赤組と白組で、一つずつの玉を対応させることと同じです。「ひとーつ、ふたーつ」というように、自然数と実数で要素を取り出しながら、対応させていくことです。

 

当然ながら、無限集合ですから、このやり方は終わりません。

対角線論法というのは、すでにみたように、表のように書き出したときに、対角線の枠を取るやり方です。

表が書き出せなければ対角線論法は使えません。

 

現代の無限に対する態度は二つに分かれます。

実無限と、可能無限です。

現代の主流は実無限になっています。

実無限というのは、無限が完了することを認めるという考え方です。

実際には絶対に終わるはずのない操作を、終わったと仮定して進めることを認める立場を取っています。

 

そのため、対角線論法のような、絶対終わるはずのない操作が終わったものと仮定することも許すのです。

 

一方で可能無限は無限が完了することを認めません。

無限とは、「いつまででも、無限に繰り返すことが許されている」という意味と解釈しています。

「気の済むまで、好きなだけ繰り返すことが可能」という意味での「可能」無限です。

 

また、同じ論法を自然数にも適用できないのか、と思うかも知れません。

対角線を取ると、実数には新しい数が生まれることは分かりました。

でも、同じ事が自然数でも出来るんじゃないか?

 

このようにして自然数の側も対角線の赤い数字を取ってコピーして、各位を書き換えれば新しい数が生まれるんじゃないか?

別に\(1\)を\(0001\)と書くのがだめってわけじゃないだろう?桁さえあわせれば対角線取れるんだからこれでもいいはずだ。

 

ところがこれは出来ないのです。

それは、自然数の定義に由来します。

自然数は、\(1\)から(\(0\)を自然数に含めるかどうかは数学者でも意見の分かれる所ですが)順に一つずつ増えていき、必ず次の数を持つと共に、前の数を持ちます。

 

「無限桁の自然数」というものは、残念ながら、すでにそれは自然数ではなくなってしまっているのです。

そのため、無限の対応を完了したと仮定しても、その対角線を取って作り出された無限桁の数は、新しい自然数とは見なせません。

 

最後になりますが、実数側の対応は少し注意がいります。

自然数側は\(1\)から順に書き出しただけですので混乱はないのですが、実数には最初とか最後の数がありません。

どこから書き出すかは難しいものがあります。

 

そのため最初の表では、自然数を2進数で表現する形式にしました。

こうすれば、実数側から同じ要素を取り出してしまう心配はありません。

 

しかし、二番目の表では、でたらめな並びの数を使いました。

このやり方だと、多数の要素を書き出した場合には、うっかり同じ数を使ってしまう危険があります。

なので、こういういい加減なやり方は本当は望ましくありません。

 

ではなぜこんなやり方をしたかと言えば、実は、10桁で\(1\)から\(10\)までを2進数で表記してしまうと、取った対角線の数が全部\(0\)になってしまうのです。

それだと、コピーを変化させた数がいままで登場していない数になる、という普遍性が実感しづらいと考えました。

 

まとめ

それでは最後に、重要な所をまとめておきましょう。

  • 無限集合を玉入れの要領で比較することは出来ない
  • 対角線論法を使うことで、実数にはまだ使われていない数があることが証明できる
  • 自然数と実数で1対1対応が終わったと仮定しても、実数にはまだ数が残されている

※コメントの反映には少し時間がかかります

2018年8月26日数学の面白いネタ

Posted by yoshi