無限集合の不思議 ~部分(偶数)と全体(自然数)が同じ要素数!?~

数学
スポンサーリンク

対象読者

  • 数学の「論理と集合」が分かる方

結論

自然数\(\mathbb{N}=\{1, 2, 3, \dots\}\)は無限個の要素を持つ。これを偶数\(E = \{2, 4, 6, \dots\}\)と奇数\(O = \{1, 3, 5, \dots\}\)に分ける(偶数Evenと奇数Oddの頭文字)。

なんと、自然数と偶数と奇数は全て同じ要素数を持つのだ。部分が全体と同じ要素数なんてあり得るのだろうか。

例えば、人類を男性と女性に分類したとする。このとき、男性と女性は人類の部分であり、男性と女性は人類全体よりも少なくなるはずだ。

にも拘わらず、男性、女性、両方の人数は等しくなる、みたいなことが自然数の分類では起きてしまう。自然数との違いは、人口は有限であるのに対して、自然数は無限である、という一点のみだ。

無限とは、人間の直観を超える化け物のようだ。

以下では、

  • 自然数と偶数の数は同じ
  • 自然数と奇数の数は同じ

であることを示す。その前に、集合同士の要素数を比較するためには、以下を押さえる必要がある。

  • 関数のイメージの厳密化
  • 「要素数が同じである」の定義

ということで、まずは関数のイメージを説明する。

関数とは2つの値の対応関係

高校数学まででは、関数を把握するためにグラフを多用してきた。だから、関数とグラフを同じものだと誤解しがちだ。

否、「関数」とは、係のことだ。詳しく言うと、入力と出力という2つの数の対応関係のことだ。関数\(f(x) = x^2\)は以下のような対応関係を表している。

  • 入力が1の時、出力は1  (\(f(1) = 1\))
  • 入力が2の時、出力は4  (\(f(2) = 4\))
  • 入力が3の時、出力は9  (\(f(3) = 9\))
関数は定義域と値域の対応関係

図1.関数のイメージ

このように、入力と出力をはっきりと意識すると、関数のイメージが、「グラフという絵」から、「入力の集合と出力の集合の対応関係」という厳密なものに変わるだろう。また、グラフのイメージも刷新されるはずだ。グラフとは、「絵」というより、「入力と出力の順序対(座標)の集合」という方が相応しいのだ。入力の集合を定義域、出力の集合を値域と呼ぶ。

関数\(f\)は以下のように定義域\(X\)、値域\(Y\)を明示して書くことができる。

$$f: X \rightarrow Y, f(x) = y$$

定義域と値域の区別は関数をイメージする上で重要だ。その練習として、定義域と値域は別物である例を以下に示す。

定義域と値域が異なる例

関数\(f(x) = x^2\)の定義域を実数全体とする。つまり、入力にはどんな実数を選んでも良い、ということだ。

このとき、この関数の値域も実数全体になりそうだが、そうはならない。マイナスの入力は、2乗によって打ち消されてしまうからだ。

図2.定義域と値域が異なる例

「2つの集合の要素数が同じである」の定義

無限の要素を持つ集合はいつまでたっても数え終わらない。そんな集合同士の要素数の比較は永遠に終わらない。

そこで、無限の要素数を持つ集合同士の数を比較するためには、より厳密な定義が必要となる。関数の厳密なイメージは、集合同士を比較するために必要なのだ

1対1対応を厳密に定義したものが全単射だ。このルールを1つでも見つけられれば、無限回の比較地獄を回避できる。単射かつ全射のことを全単射という。それぞれをもっと詳しく説明する。以下の関数について考える。

$$f: X \rightarrow Y, f(x) = y$$

単射とは出力が重ならないこと

単射を数式で表すと以下になる。

$$ \forall x_1, x_2 \in X, x_1 \neq x_2 \Rightarrow f(x_1)\neq f(x_2) $$

日本語に訳すと次のようになる。あらゆる入力から任意に\(x_1\)と\(x_2\)を選ぶ。入力の値が異なる(\(x_1 \neq x_2\))ならば、出力も異なる(\(f(x_1)\neq f(x_2)\))。

「ならば(\(\Rightarrow\))」は対偶によって書き換えができる。\(P\)と\(Q\)を命題(真偽が判定できる文)とおくと、以下が成り立つ。(\(\lnot\))は否定の記号だ。

$$ (P \Rightarrow Q) \Leftrightarrow (\lnot Q \Rightarrow \lnot P) $$

単射の証明では、以下のような対偶バージョンを使うことが多い。

$$ \forall x_1, x_2 \in X, f(x_1 ) = f(x_2) \Rightarrow x_1 = x_2 $$

例えば、\(f(x) = x^2\)は単射ではない。\(x_1 = 1, x_2 = -1\)の場合を定義に当てはめれば分かる。

関数\(f\)が単射であることは、値域の要素数は定義域の要素数以上であることを示すため、\(X \leq Y\)とも表される。言い換えると、以下のようになる。

  1. 入力1つ1つが重なることなく出力される
  2. 入力に対応しない要素が値域に含まれる場合、その数だけ定義域よりも値域の要素数は多い(図3)

図3.デブな値域の単射

全射とは余分な値域の要素がないこと

全射を数式で表すと以下になる。

$$ \forall y \in Y, \exists x \in X, f(x) = y $$

日本語に訳すと、次の通り。値域のあらゆる要素には、対応する入力が存在する。\(\exists\)は「存在する(Exist)」を意味する記号だ。別の言い方をすると、

  • 図3のように、入力との対応に無関係な要素は値域には含まれていない
  • 複数の入力が同じ出力になる(単射でない)でも許される(図4)

図4.全射とはスリムな値域

単射と全射の意味や図3と図4を考えると、全単射とは1対1対応に他ならないことが分かるだろう。

自然数と偶数と奇数が同じ要素数である証明

以上より、関数のイメージから始まり、1対1対応の定義を確認した。証明を始める準備が整った。

以下のような自然数\(\mathbb{N}\)から偶数\(E\)への関数が全単射であることを示す。

$$ f: \mathbb{N} \rightarrow E, f(n) = 2n $$

まず、\(f\)が単射であることを示す。2つの入力を\(n_1, n_2 \in \mathbb{N}\)とおく。

\begin{eqnarray*} f(n_1) &=& f(n_2) \\ \Rightarrow 2n_1 &=& 2n_2 \\ \Rightarrow n_1 &=& n_2 \end{eqnarray*}

よって、単射である。次は、全射であることを示す。

適当な出力を\( e \in E \)とおく。\(e\)は偶数であるため、2で割り切れる。つまり、\(e / 2 \in \mathbb{N}\)。よって、出力に対応する入力が存在し、全射である。

以上より、自然数と偶数は1対1に対応(全単射)していることが分かる。

同様に、自然数と奇数も同じ要素数であることが証明できる。以下のような関数を定義して、こいつが全単射であることを示すだけだ。

$$ f: \mathbb{N} \rightarrow O, f(n) = 2n + 1 $$

総カツ!

そもそも冒頭で示したように無限の要素を持つ集合を閉じた形でイメージすること自体がおかしなことだったのではないだろうか。すると、これらの無限部分を含んだ部分集合も、元の全体集合と同じ大きさであっても、不思議ではない気がしてくる。

それにしても、無限は人間の想像を超えている。これを1対1対応のような切り口で飼い慣らす数学ってすんごいいいい。

コメント

タイトルとURLをコピーしました