第21話 急増加関数の姿
「とにかく大事なのは、f_α(n)とf_α+1(n)には、f_αをn回くらい繰り返した強さってことだよ」
「それはわかった!でもねえ、はかせ、まだ急増加関数のルール①と②しかつかってないよね?③はどんなの?」
「うん、③こそが急増加関数の本領発揮だ。まずは定義をみてみよう」
③急増加関数に対応する順序数が、極限順序数であるとき、基本列のn番目の項の急増加関数に変換できる。
f_α(n)=f_α[n](n)
ただし、αは極限順序数、α[n]はαの基本列のn番目
「なんだか大変そう」
「普段使わない言葉ばっかりでてくるからね。具体的な例で計算すればすぐにわかる。たとえば次の式を計算してみよう
f_ω(3)
まず、fの添字が極限順序数だ。このときに、ルール③が使われる。ωの収束列はたくさんあるけど、最も簡単なのは、
1 2 3 4 ...
という自然数の列だ。そこで、この列をωの基本列という。そして、この3番目の数、つまり3にωを書き換えよう、というルールだ。
つまり
f_ω(3)
=f_3(3)
ここで、ちょうどハイパー4演算、つまりテトレーションと同じ強さであることがわかる。
これをみれば、
f_ω(n)
=f_n(n)
となるので、f_ω(n)とは、ハイパーn+1演算に相当する増加速度だということがわかるだろう。
なお、f_ω(n)は、nを大きくすれば、どのようなハイパー演算よりも大きくできるため、ハイパー演算よりも強い関数ということになる。
具体的には次のように使う。記号「→」を
a→b→c=a^^...(c個)...^b
と定義しよう。これはチェーン表記と呼ばれる。変数cは、ハイパーn演算のn-2に相当している。
つまり、次のように近似できる
3→3→n≒f_ω(n-1)
ちなみに、
3→3→n=g(n)とおいて、nを極端に大きくすることは、「^」の数を極端に増やしているように感じるため、直感的には、
g^n(n)=3→3→(3→3→...(n個)...(3→3→n))...)
は、非常に強そうに感じる。しかし、実際には急増加関数の
f_ω+1(n)
程度である。なぜなら、
f_ω+1(n)
=f^n_ω(n)
となって、f_ω(n)をn回入れ子にしたことと同じだからだ。
つまり、単純な合成では、急増加関数に対応している順序数を1増やしているに過ぎない。これこそが、急増加関数が巨大数の比較に適している所以であり、また大きい数を作ることがいかに難しいか、ということである。
ある巨大数を作る時に、急増加関数に対応している順序数1 2 3 ...の増加速度から、ωにたどり着くには、一つの発想の飛躍が必要であり、それを乗り越えて
ω+1 ω+2という強さに対応できるルールを作れたとしても、その先の
ω+ωにたどり着くためにはさらなる発想の飛躍が必要となる。
この発想の飛躍を一般化することに成功した関数、つまり、無限に発想の飛躍ができるような関数が、
ω ω+ω ω+ω+ω ...
という列を作ることができ、そこで新たなる発想の飛躍を用いて
ω×ω
にたどり着くことができる。
極限順序数という化物が、何層も何層も待ち構えているのを、何度も何度もいろんな発想を試し、真に増加速度に寄与する別視点の拡張を繰り広げていく遊びが、巨大数という遊びであると言えるね。
普段から巨大数を作るときに注意しなければならないのは、
ω×ωに相当する関数を作れたとしよう。それを一般化したり、拡張したり、組み合わせたりして、新たに巨大な関数を作れたとする。
しかし、それは、ω×ωの次の段階として、
ω×ω+1
になったのか、
ω×ω+ω
になったのか、
ω×ω×ω
になったのか、それとも、
ω^ω
になるという偉大な拡張に成功していたのか。
あるいは、
f_ω×ω(n+1)
程度の拡張にすらなっていないようなものだったのか、よくよく吟味しなくてはいけない。そして、大体の場合、ω×ω+1程度の拡張になっているに過ぎないということを気をつけておかなければならないよ。
一応、目安としては、
式に現れている定数や変数を大きくする
n+1
関数を入れ子にする
α+1
関数の変数を増やす
α+ω
関数の変数の数を一般化し、より高次の関数を定義しなおす
α×ω
に相当していると言って良いと思う。ただし、毎回こうなるわけではない。少しの違いが大きさにものすごい変化をもたらすこともあれば、複雑怪奇な定義が大きさにほとんど変化をもたらしていないこともある」
「うん、でも実際に作ったりしてみないと、よくわからないよ」
「それはそうだね。まずは急増加関数をよく練習するのがいいとは思うけど。
たとえば
f_ω×ω+1(2)
でもやってみようか」
f_ω×ω+1(2)
=f^2_ω×ω(2)
=f_ω×ω(f_ω×ω(2)) ...(1)
ここで、f_ω×ω(2)を計算し、あとで(1)に代入する。
f_ω×ω(2)
=f_ω×2(2)
∵ω×ωの基本列は、ω×1, ω×2, ω×3, ...だから
=f_ω+ω(2)
=f_ω+2(2)
=f^2_ω+1(2)
=f_ω+1(f_ω+1(2))
=f_ω+1(f^2_ω(2))
=f_ω+1(f_ω(f_ω(2)))
=f_ω+1(f_ω(f_2(2)))
=f_ω+1(f_ω(8))
=f_ω+1(f_8(8))
≒f_ω+1(3→3→9)
「ここでは、ハイパー演算の何番目かだけを意識して、底を無視しているよ」
=f^3→3→9_ω(3→3→9)
「ここで、少し悲劇的なことがおきている。チェーン表記を拡張しよう。
a→b→( )の( )部分に、a→b→1を入れたものを、a→b→2→2と書く。
a→b→2→2=a→b→(a→b→1)
ということだ。
a→b→( )の( )の部分に、a→b→2→2を入れたものを、a→b→3→2と書く。
a→b→3→2=a→b→(a→b→2→2)=a→b→(a→b→(a→b→1))
以下同様に、a→b→( )→2の( )の部分にa→b→c→2を入れたものを、a→b→(c+1)→2と書く」
3→3→9をAと置くと
=f^A-1_ω(f_ω(A))
≒f^A-1_ω(3→3→A+1)
27<3→3→9<3→3→27=3→3→2→2より、小さいほうに近似して、
≒f^A-1_ω(3→3→2→2)
≒f^A-2_ω(3→3→2→2)
しかし、Aが巨大な数だったため、最後まで計算するとあまり無視できない。評価としては、次としてもいいかもしれない。(ちょうど中間あたりで難しい)
≒(3→3→3→2)
ここで、この数をBとおき、(1)に代入すると、
=f_ω×ω(B)
=f_ω+B(B)
=f^B_ω+B-1(B)
「ここで、どのような悲劇的なことが起きてるかわかる?Bという数はすでにチェーン表記を拡張しなければならないほど大きい数だった。これを作ったのが、f_ω+1という関数だ。そして、f_ω+2という関数は、それをB回繰り返すという恐ろしい関数だ。・・・という繰り返しをB回ほど繰り返したのが、f^ω×ωという関数だよ。ここでは、もう拡張されたチェーン表記を使っても全然たどり着くことはできない。それでも、ここまでなんとか計算できたのは、f_ω×ω(2)は、2のおかげで何とか良識的にふるまってくれていたからだ」
「なんだか、大きいという言葉の意味が違って見えてるかも・・・」
ロクリアちゃんはすこし神妙な顔になって言う。
「ωと、ω×ωの圧倒的な違いがわかってくれたなら嬉しいけど・・・、明日はさらにその上の順序数にどんなものがあるのかを見てみよう」
「うん!・・・となんとなく元気を出してみたよ。でも不思議な世界にいるっていうことだけはなんとなくわかって楽しいかな」
ロクリアちゃんは、複雑そうな顔をしたけれども、笑顔で挨拶をして、帰っていた。リディアさんは、やっぱり先にロクリアちゃんを先に帰したあと、
「あの、グッド博士。よろしければ今度「音探しの丘」に行きませんか?」
「音探しの丘?」
「はい、ここから電車で一時間くらいですが、考え事をしたり、いろんなことを話しながら歩くのに、ちょうど良い場所なんです」
ロクリア・リディア姉妹には、よく外に連れ出されるようだ。
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます