浅葱色の計算用紙

数学(広義)を扱っています。

10^6以上の実数

(これはホラー記事なので、適宜短調のBGMを聞きながら読んでください。)

 

昨日の記事は

nichi.potaro.orgでした。

面白そうなのでもう少し踏み込んで勉強してみたいと思います。

 

さて、今日の日曜数学Advent Calendarは「10^6以上の実数を1つ投稿します」です。ということは、

10^6

とだけ書いてこの記事を終了してもいいのですが、そんなことをすると「たった4文字のためだけに貴重なAdvent Calendarの枠を1つ潰したのか」というクレームが飛んできそうなので、もう少し面白いことをしましょう。

 

10^6以上の実数は10^6以上であればいくら大きくてもいいので、実数を大きくする操作を考えましょう。例えば、

$$ f(x) = x+1 $$

という関数を考えると、これは任意の実数\( x \)に対し、\( f(x) > x \)が成り立つので、この関数は実数を大きくすることができます。そこで、さっきの10^6をこの関数で大きくしてみましょう。

$$ f(10^6) = 10^6+1 $$

大きくなりました。ですがこれでもまだ「100万とんで1」なので面白くありませんね。もう1回大きくしましょう。

$$ f(f(10^6)) = (10^6+1)+1 = 10^6+2 $$

「100万とんで2」ですね。

 

一体私は何をやっているのでしょう。「100万から1ずつ数を数える」なんていう記事は誰も望んでいないはずです。せっかくですから、もっと大きい数を作りましょう

 

$$ g(x) = f^x(x) $$

(ただし\( f^x \)は\( f \)の\( x \)回合成)とおくと、\( x \geq 1 \)のとき\( g(x)=f^x(x) \geq f(x)>x \)が成り立ちます。また、\( f \)を定数回合成した関数は、その定数が何であっても\( x \)を十分大きくすれば\( g \)の方が大きくなってしまいます。なぜなら、\( x \)をその定数より大きくすることができるからです。

 

さて、この関数に\( 10^6 \)を代入しましょう。非常に大きい数が得られるはずです。

\( \begin{eqnarray*} g(10^6) &=& f^{10^6}(10^6) \\ &=& f^{10^6-1}(10^6) \\ &=& \cdots \\ &=& 10^6 \cdot 2 \end{eqnarray*} \)

2倍になりました。一般に、\( g(x) = 2x \)が成り立ちます。この証明は非常に簡単なので、読者への演習問題にしません

 

もちろんこの\( g \)を\( 10^6 \)に複数回適用することもできます。当然ながら、適用した回数だけ\( 10^6 \)が2倍されます。

$$ g(g(10^6)) = 10^6 \cdot 2^2 = 4 \cdot 10^6 $$

$$ g(g(g(10^6))) = 10^6 \cdot 2^3 = 8 \cdot 10^6 $$

 

まだ面白くありませんね。いっそのこと、\( g \)を\( 10^6 \)回適用したらどうなるでしょうか。そのために、次の関数を用意します。

$$ h(x) = g^x(x) $$

こうすると、「\( 10^6 \)に\( g \)を\( 10^6 \)回適用した数」は\( h(10^6) \)と表されます。

お気づきでしょうが、2倍を繰り返すという操作は非常に強力です。「1粒の米粒を80回2倍にする」だけで米の世界生産量を大きく上回ることはよく知られていますね。

そんな2倍の操作を100万回もやったら......それはもう、巨大な数が出来上がります。Wolfram|Alphaで計算すると、次の結果が得られました:

$$ h(10^6) = 10^6 \cdot 2^{10^6} = 9.90065622929589825069792361630190325073362424178756... × 10^{301035} $$

 

この次に何が起こるかわかりますか? そうですね、\( h(h(10^6)) \)ですね。\( h(10^6) \)は自然数なので、この結果をさらに\( h(x) \)に代入することができます。

$$ h(h(10^6)) > 10^{10^{300000}} $$

指数が3段になってしまいました。この不等式は自明なので証明は読者への演習問題にします

当然のようにこんなこともできます。

$$ h(h(h(10^6))) > 10^{10^{10^{300000}}} $$

 

普段だったらここで終わるのですが、今日の私は暴走モードなのでもっと大きくします。

 

↓警告: ここからはこんな感じの世界に入ります。

何 か が 壊 れ る 音 が し た

6 は 巨 大 数

ス テ ー ジ カ ー デ ィ ナ ル

ア ブ ソ リ ュ ー ト イ ン フ ィ ニ テ ィ ー

我 は 勝 利 す る

キ ェ ェ ェ キ ョ ダ イ キ ョ ダ イ

イ ン テ ル 長 友

も う 何 か 書 い と け

 

 

(注意: この下には非常に心臓に悪いメッセージがあります。)

 

 

 

 

 

 

 

 

 

 

 

 

警告しましたよ。

 

 

 

 

 

 

 

 

 

 

 

 

今までと同じ流れで、\( h \)を\( x \)回合成した関数を考えます。\( i \)は明らかに使いたくないので、今までの関数を全部番号で表しましょう。

$$ f(1,x) = f(x), f(2,x) = g(x), f(3,x) = h(x) $$

こうすると、\( h \)を\( x \)回合成した関数はこのように書けますね。

$$ f(4,x) = h^x(x) $$

さて、この\( f(4,x) \)に\( 10^6 \)を入れたら何が起こるでしょうか。

$$ f(4,10^6) > 10 \uparrow \uparrow 10^6 $$

数が大きすぎて、矢印が出てきました。これは「テトレーション」といって、べき乗を再帰的に繰り返した演算です(もちろん指数の方で再帰します)。

テトレーションについてはこの記事が詳しいので、ぜひご一読ください。

テトレーション - Wikipedia

 

もちろん次のステップはこれです。

$$ f(4, f(4, 10^6)) > 10 \uparrow \uparrow 10 \uparrow \uparrow 10^6 $$

テトレーションは右から計算するので、右辺は\( 10 \uparrow \uparrow (10 \uparrow \uparrow 10^6 ) \)です。もうわけがわかりませんね。

ここで止まるわけがありません。

$$ f(4, f(4, f(4,10^6))) > 10 \uparrow \uparrow 10 \uparrow \uparrow 10 \uparrow \uparrow 10^6 $$

$$ f(4, f(4, f(4, f(4, 10^6)))) > 10 \uparrow \uparrow 10 \uparrow \uparrow 10 \uparrow \uparrow 10 \uparrow \uparrow 10^6 $$

 

\( f(4, x) \)もさらに合成することができます。もうめんどくさいので、一気に全部定義してしまいましょう。

\( a, x \)は自然数とする。ただし0は自然数に含まないものとする。

$$ \begin{align} f(1, x) &= x+1 \\ f(a+1, x) &= \left( \lambda t. f(a, t) \right)^x (x) \end{align} $$

ただし\( \lambda \)はラムダ計算のラムダである。

2変数関数\( f \)に対しては\( f^x \)と書くことができない(どちらの変数でネストするのかわからない)ので、こう書くしかありません。

 

こうすると、\( f(5, 10^6), f(6, 10^6), f(7, 10^6), \cdots \)といった数が一度に定義できます。

これらの数はどれほどの大きさになるでしょうか? クヌース矢印表記を使うと、比較することができます。\( f \)の左側の引数が1つ増えると、矢印が1本増えます。

$$ f(5,10^6) > 10 \uparrow \uparrow \uparrow 10^6 $$

$$ f(6,10^6) > 10 \uparrow \uparrow \uparrow \uparrow 10^6 $$

$$ f(7,10^6) > 10 \uparrow \uparrow \uparrow \uparrow \uparrow 10^6 $$

$$ \vdots $$

 

 

 

 

次に何が起きるかわかりますよね。

(グーゴロジスト向け: ここからが本編です)

 

 

 

 

$$ f(10^6, 10^6) > 10 \underbrace{\uparrow\uparrow\uparrow \cdots \uparrow\uparrow\uparrow\hspace{-8mm}}_{10^6-2} 10^6 $$

2変数関数の限界に来てしまいました。ここでまた、「番号」の概念を導入します。今までの\( f(x,y) \)を「\( 1 \)番目の\( f \)」、つまり\( f(1,x,y) \)と書きましょう。

 

この限界を超えるには、「\( 2 \)番目の\( f \)」、つまり\( f(2,x,y) \)を用意すればよいですね。

 

$$ f(2, 1, 10^6) = f(1, 10^6, 10^6) $$

\( f(2,1,10^6) \)は「\( 2 \)番目の\( f \)の\( 1 \)番目の関数」だと思ってください。一般に、次のように\( f(2, 1, x) \)を定義します。

$$ f(2, 1, x) = f(x, x) $$

ところで、2変数関数\( f \)の左側の変数は矢印の本数に相当するのでした。ということは、この\( f(2, 1, x) \)は矢印表記と同じ大きさの関数になります。

 

これでは面白くありませんね。もっと大きくしましょう。

$$ f(2, 2, x) = \left( \lambda t. f(2, 1, t) \right)^x (x) $$

\( f(2,1,x) \)の\(x\)の部分を再帰させてみました。この過程は少しわかりにくいので、ゆっくり行きましょう。

ここから先は不等式比較が本質的ではなくなるので、\( \approx \)で近似します。近似と言っても、実際の値は非常に異なる(だが巨大数的には十分近い)ことに注意してください。

$$ f(2, 1, 10^6) \approx 10 \underbrace{\uparrow\uparrow\uparrow \cdots \uparrow\uparrow\uparrow}_{10^6} 10 $$

$$ f(2, 1, f(2, 1, 10^6)) \approx 10 \underbrace{\uparrow\uparrow\uparrow \cdots \uparrow\uparrow\uparrow}_{10 \underbrace{\uparrow\uparrow\uparrow \cdots \uparrow\uparrow\uparrow}_{10^6} 10} 10 $$

$$ f(2, 1, f(2, 1, f(2, 1, 10^6))) \approx 10 \underbrace{\uparrow\uparrow\uparrow \cdots \uparrow\uparrow\uparrow}_{10 \underbrace{\uparrow\uparrow\uparrow \cdots \uparrow\uparrow\uparrow}_{10 \underbrace{\uparrow\uparrow\uparrow \cdots \uparrow\uparrow\uparrow}_{10^6} 10} 10} 10 $$

そういえばこの構造、どこかで見たことがありますね。 そうです、グラハム数です。

グラハム数と比較すると、\( f(2, 1, x) \)を64段重ねるとグラハム数を超えることが分かります。

すなわち、\( f(2, 2, 10^6) \)はグラハム数より大きいということです!

ついに、ギネスブックに載った数として有名なグラハム数を超えてしまいました!

 

でも、巨大数的にはまだ序盤です。

 

\( f(1,2,x) = g(x) \)から\( f(1,3,x) = h(x) \)を作ったように、\( f(2,2,x) \)から\( f(2,3,x) \)を作ることができます。

$$ f(2, 3, x) = \left( \lambda t. f(2, 2, t) \right)^x (x) $$

もちろん\( f(2, 3, 10^6) \)も定義できます。

 

グラハム数を超えて、比較するものも(チェーン表記ぐらいしか)なくなってきたので3変数の\( f \)の定義を出します。もう5000文字も書いてるしはっきりいってめんどくさい

 

$a, b, c$は自然数とする。ただし0は自然数に含まないものとする。

$$ \begin{align} f(1, 1, c) &= c+1 \\ f(a+1, 1, c) &= f(a, c, c) \\ f(a, b+1, c) &= \left( \lambda t. f(a, b, t) \right)^c (c) \end{align} $$

 

3変数の\( f \)の限界に対応する近似式を以下に示します。

$$ f(10^6, 10^6, 10^6) \approx \underbrace{10^6 \rightarrow 10^6 \rightarrow \cdots \rightarrow 10^6 \rightarrow 10^6}_{10^6} $$

 

 

もうここまでついてこれている人はグーゴロジストしかいないでしょうから、一気に多変数の\( f \)を定義して、巨大数を定義して、これで終わりにしましょう。

 

$a$は自然数とする。$X$は0個以上の1とする。$Y$は0個以上の自然数とする。ただし0は自然数に含まないものとする。

$$ \begin{align} f(X, c) &= c+1 \\ f(Y, a+1, 1, X, c) &= f(Y, a, c, X, c) \\ f(Y, b+1, c) &= \left( \lambda t. f(Y, b, t) \right)^c (c) \end{align} $$

このとき、

$$ f(\underbrace{10^6, 10^6, \cdots, 10^6, 10^6}_{10^6\text{変数}}) $$

を「日曜数学巨大数」とし、これを投稿とする。

 

「日曜数学巨大数」が実際に\( 10^6 \)以上の実数になっていることの証明は第2回幻想巨大数の審査員への演習問題となります。

 

明日の記事はトッチさんによる「実数の冪根の冪根の冪根の... について」です。何らかの極限の話でしょうか。