第15話 多階鉄道(前前後編)
電車はグーゴルドゥプレックス駅に数分停車し、そして再び動き出す。
〔次は、第2スキューズ数、第2スキューズ数です〕
スキューズ数?さっきもこんな名前の駅があった気がする。たしか、π(x)とかLi(x)とかが出てくる素数関係の予想の上限として与えられた数だった。彼女に確認してみよう。
「スキューズ数というのは、素数に関連する数ですよね」
『はい。さっき話した通り、スキューズ数はπ(x)-Li(x)の符号が変わる最初の数の上限として与えられた数です。第1スキューズ数はリーマン予想を仮定したときの値で、第2スキューズ数はリーマン予想を仮定しないときの値です』
「リーマン予想は数学のいろいろなところに出てきますが、こんなところにまで現れるのは面白いですね」
『素数に関係するところならどこにでもリーマン予想が現れる可能性があります。この数も素数についての予想に関連する数なので、リーマン予想が出てきても不思議ではありません』
「興味深いです」
巨大数にリーマン予想か。全く関係のなさそうなものが、実はつながっている。これが数学の特徴なのかもしれない。
だが、僕は今長く思考空間に入り浸ることができない。
〔次は、メガフガファイブ、メガフガファイブです〕
なぜなら、車内アナウンスがこのように僕の思考を次の数へと向けるからだ。
『メガフガファイブは、5↑↑5です。megafuga-xがx↑↑xを意味しています』
彼女も同じだ。
リーマン予想と巨大数についてもう少し考えよう。リーマン予想は、素数に関する予想だと聞いたことがある。この場合はリーマン予想を仮定するかによってある予想の上限が変わるというものだった。そういえば、高次元の立方体に関する問題でもこんなことが起こっていた気がする。グラハム数だった気がする。グラハム数はたしか矢印の本数をたくさん増やすものだった。
『あの、私のこと、聞いてますか』
彼女が僕の思考を完全に遮った。とりあえず、適当なジョークでも言ってごまかしておこう。
「ヘルシェイク矢野のこと考えてた」
『それは、どういう意味ですか』
「気にしないでください。ただのジョークです。」
『そうでしたか』
なんとかやり過ごせたようだ。
「それで、何の話でしたっけ」
『megafugafiveです。megafuga-xがx↑↑xという意味です』
「x↑↑xということは、xの指数をx段重ねるんですよね」
『はい』
彼女はいくつか例を書き始める。
1↑↑1=1
2↑↑2=2^2=4
3↑↑3=3^3^3=3^27=7.62560*10^12
4↑↑4=4^4^4^4=4^4^256≒10^(8.072304*10^153)
5↑↑5=5^5^5^5^5=5^5^5^3125≒10^10^(1.33574*10^2184)
「xが1増えるごとに、数がすごい勢いで大きくなるのですね」
『はい。xの増加が、おおよそ指数の段数の増加と同じになります』
「これを使えば、とても大きい数ができそうですね」
『そして、私たちは今これと同じ増加率の鉄道に乗っています!』
「もうすこしわかりやすくお願いします」
『この鉄道は、x↑↑xで表される大きさの数を通っていきます』
「ということは、この鉄道でかなり遠くまで行けるのですね」
『はい。今までよりもずっと大きい数に達することが出来ます。巨大数的には、まだ小さいですが』
「ここまでやっても、まだ小さいんですね」
『指数を重ねているだけですからね。実際には指数を重ねることを重ねる、指数を重ねることを重ねることを重ねる、指数を重ねることを重ねることを重ねることを重ねる・・・と繰り返して、ようやく巨大数の第1ステップであるクヌースの矢印表記に達することが出来ます』
「なんだか、気が遠くなりそうな話ですね」
『今のうちはそう思うかもしれませんが、そのうちこの繰り返しも小さく見えてきます』
「それは、何か恐ろしくも感じます」
『安心してください。最初だけですから』
「だといいですけど」
〔まもなく、メガフガファイブ、メガフガファイブです〕
電車が駅に着いたようだ。その駅は無人駅で、ホームには時刻表と思われるものとベンチがあるだけだ。乗降客もいないので、この駅の停車時間は10秒ほどだった。
〔次は、ギャグフォー、ギャグフォーです〕
『gagfourは、アッカーマン関数を用いてA(4,4)と表されます。gag-xが、A(x,x)を意味しています』
「アッカーマン・・・関数?」
『アッカーマン関数についてはまだ説明していませんでしたね。定義はこうです』
彼女はノートに書き始める。
A(0,y)=y+1
A(x,0)=A(x-1,1)
A(x,y)=A(x-1,A(x,y-1)) (x,y≧1のとき)
『アッカーマン関数は、2変数の関数として表されます』
彼女が説明を始める。
『一番上の式は、最初の変数が0だったときは、2番目の変数に1を足した値がそのアッカーマン関数の値になるということです』
いや、式の意味はわかる。僕は彼女の説明を遮る。
「いいえ、この式の意味は分かったので、具体例をください」
『ではこれを計算してみましょう』
そう言うと、彼女はノートの新しいページを開いて、説明しながら数式を書き始めた。
A(3,3)
『これは、3行目のルールを使って、次のようにできます』
=A(2,A(3,2))
確かに、3行目のルールのxとyに3を代入した式になっている。
『次はA(3,2)ですが、これはそのままでは計算できないのでまた3行目のルールを使います』
=A(2,A(2,A(3,1)))
今はxが3でyが2だから、3行目の右辺はA(2,A(3,1))になる。これがA(2,□)の□の部分に入っているのだから、この式になるのか。
『もう一度3行目を使います』
=A(2,A(2,A(2,A(3,0))))
xが3でyが1だ。上の行と同じように考えて、A(2,A(2,□))の中身がA(2,A(3,0))になる。
『ここで、2番目の変数が0になってしまったので3行目は使えません。次は2行目を使います』
=A(2,A(2,A(2,A(2,1))))
xが3でyが0としたいが、3行目の条件にy≧1があるのでこれは使えない。2行目は、2番目の変数が0の時のルールだ。2番目の変数が0の時は、最初の変数を1減らして2番目の変数を1にする。この場合は最初の変数は3だから、A(3,0)がA(2,1)になる。
『3行目と2行目を使って、次の何行かはこうなります』
=A(2,A(2,A(2,A(1,A(2,0)))))
=A(2,A(2,A(2,A(1,A(1,1)))))
=A(2,A(2,A(2,A(1,A(0,A(1,0))))))
=A(2,A(2,A(2,A(1,A(0,A(0,1))))))
『そして、最初の変数が0になったので、1行目のルールを使います』
1行目は最初の変数が0の時のルールだ。最初の変数が0の時は、2番目の変数に1を足した値がそのアッカーマン関数の値になる。この場合はA(0,1)だから、1+1で2になる。
『この後も、これらのルールを繰り返していくと、このように計算できます』
そう言うと、彼女はとてつもない速さで数式を書き始めた。
=A(2,A(2,A(2,A(1,A(0,2)))))
=A(2,A(2,A(2,A(1,3))))
=A(2,A(2,A(2,A(0,A(1,2)))))
=A(2,A(2,A(2,A(0,A(0,A(1,1))))))
=A(2,A(2,A(2,A(0,A(0,A(0,A(1,0)))))))
=A(2,A(2,A(2,A(0,A(0,A(0,A(0,1)))))))
=A(2,A(2,A(2,A(0,A(0,A(0,2))))))
=A(2,A(2,A(2,A(0,A(0,3)))))
=A(2,A(2,A(2,A(0,4))))
=A(2,A(2,A(2,5)))
=A(2,A(2,A(1,A(2,4))))
=A(2,A(2,A(1,A(1,A(2,3)))))
=A(2,A(2,A(1,A(1,A(1,A(2,2))))))
=A(2,A(2,A(1,A(1,A(1,A(1,A(2,1)))))))
=A(2,A(2,A(1,A(1,A(1,A(1,A(1,A(2,0))))))))
=A(2,A(2,A(1,A(1,A(1,A(1,A(1,A(1,1))))))))
=A(2,A(2,A(1,A(1,A(1,A(1,A(1,A(0,A(1,0)))))))))
=A(2,A(2,A(1,A(1,A(1,A(1,A(1,A(0,A(0,1)))))))))
=A(2,A(2,A(1,A(1,A(1,A(1,A(1,A(0,2))))))))
=A(2,A(2,A(1,A(1,A(1,A(1,A(1,3)))))))
=A(2,A(2,A(1,A(1,A(1,A(1,A(0,A(1,2))))))))
=A(2,A(2,A(1,A(1,A(1,A(1,A(0,A(0,A(1,1)))))))))
=A(2,A(2,A(1,A(1,A(1,A(1,A(0,A(0,A(0,A(1,0))))))))))
=A(2,A(2,A(1,A(1,A(1,A(1,A(0,A(0,A(0,A(0,1))))))))))
=A(2,A(2,A(1,A(1,A(1,A(1,A(0,A(0,A(0,2)))))))))
=A(2,A(2,A(1,A(1,A(1,A(1,A(0,A(0,3))))))))
=A(2,A(2,A(1,A(1,A(1,A(1,A(0,4)))))))
=A(2,A(2,A(1,A(1,A(1,A(1,5))))))
=A(2,A(2,A(1,A(1,A(1,A(0,A(1,4)))))))
=A(2,A(2,A(1,A(1,A(1,A(0,A(0,A(1,3))))))))
=A(2,A(2,A(1,A(1,A(1,A(0,A(0,A(0,A(1,2)))))))))
=A(2,A(2,A(1,A(1,A(1,A(0,A(0,A(0,A(0,A(1,1))))))))))
=A(2,A(2,A(1,A(1,A(1,A(0,A(0,A(0,A(0,A(0,A(1,0)))))))))))
=A(2,A(2,A(1,A(1,A(1,A(0,A(0,A(0,A(0,A(0,A(0,1)))))))))))
=A(2,A(2,A(1,A(1,A(1,A(0,A(0,A(0,A(0,A(0,2))))))))))
=A(2,A(2,A(1,A(1,A(1,A(0,A(0,A(0,A(0,3)))))))))
=A(2,A(2,A(1,A(1,A(1,A(0,A(0,A(0,4))))))))
=A(2,A(2,A(1,A(1,A(1,A(0,A(0,5)))))))
=A(2,A(2,A(1,A(1,A(1,A(0,6))))))
=A(2,A(2,A(1,A(1,A(1,7)))))
=A(2,A(2,A(1,A(1,A(0,A(1,6))))))
=A(2,A(2,A(1,A(1,A(0,A(0,A(1,5)))))))
=A(2,A(2,A(1,A(1,A(0,A(0,A(0,A(1,4))))))))
=A(2,A(2,A(1,A(1,A(0,A(0,A(0,A(0,A(1,3)))))))))
=A(2,A(2,A(1,A(1,A(0,A(0,A(0,A(0,A(0,A(1,2))))))))))
=A(2,A(2,A(1,A(1,A(0,A(0,A(0,A(0,A(0,A(0,A(1,1)))))))))))
=A(2,A(2,A(1,A(1,A(0,A(0,A(0,A(0,A(0,A(0,A(0,A(1,0))))))))))))
=A(2,A(2,A(1,A(1,A(0,A(0,A(0,A(0,A(0,A(0,A(0,A(0,1))))))))))))
=A(2,A(2,A(1,A(1,A(0,A(0,A(0,A(0,A(0,A(0,A(0,2)))))))))))
=A(2,A(2,A(1,A(1,A(0,A(0,A(0,A(0,A(0,A(0,3))))))))))
=A(2,A(2,A(1,A(1,A(0,A(0,A(0,A(0,A(0,4)))))))))
=A(2,A(2,A(1,A(1,A(0,A(0,A(0,A(0,5))))))))
=A(2,A(2,A(1,A(1,A(0,A(0,A(0,6)))))))
=A(2,A(2,A(1,A(1,A(0,A(0,7))))))
=A(2,A(2,A(1,A(1,A(0,8)))))
=A(2,A(2,A(1,A(1,9))))
=A(2,A(2,A(1,A(0,A(1,8)))))
=A(2,A(2,A(1,A(0,A(0,A(1,7))))))
=A(2,A(2,A(1,A(0,A(0,A(0,A(1,6)))))))
=A(2,A(2,A(1,A(0,A(0,A(0,A(0,A(1,5))))))))
=A(2,A(2,A(1,A(0,A(0,A(0,A(0,A(0,A(1,4)))))))))
=A(2,A(2,A(1,A(0,A(0,A(0,A(0,A(0,A(0,A(1,3))))))))))
=A(2,A(2,A(1,A(0,A(0,A(0,A(0,A(0,A(0,A(0,A(1,2)))))))))))
=A(2,A(2,A(1,A(0,A(0,A(0,A(0,A(0,A(0,A(0,A(0,A(1,1))))))))))))
=A(2,A(2,A(1,A(0,A(0,A(0,A(0,A(0,A(0,A(0,A(0,A(0,A(1,0)))))))))))))
=A(2,A(2,A(1,A(0,A(0,A(0,A(0,A(0,A(0,A(0,A(0,A(0,A(0,1)))))))))))))
=A(2,A(2,A(1,A(0,A(0,A(0,A(0,A(0,A(0,A(0,A(0,A(0,2))))))))))))
=A(2,A(2,A(1,A(0,A(0,A(0,A(0,A(0,A(0,A(0,A(0,3)))))))))))
=A(2,A(2,A(1,A(0,A(0,A(0,A(0,A(0,A(0,A(0,4))))))))))
=A(2,A(2,A(1,A(0,A(0,A(0,A(0,A(0,A(0,5)))))))))
=A(2,A(2,A(1,A(0,A(0,A(0,A(0,A(0,6))))))))
=A(2,A(2,A(1,A(0,A(0,A(0,A(0,7)))))))
=A(2,A(2,A(1,A(0,A(0,A(0,8))))))
=A(2,A(2,A(1,A(0,A(0,9)))))
=A(2,A(2,A(1,A(0,10))))
=A(2,A(2,A(1,11)))
=A(2,A(2,A(0,A(1,10))))
=A(2,A(2,A(0,A(0,A(1,9)))))
=A(2,A(2,A(0,A(0,A(0,A(1,8))))))
=A(2,A(2,A(0,A(0,A(0,A(0,A(1,7)))))))
=A(2,A(2,A(0,A(0,A(0,A(0,A(0,A(1,6))))))))
=A(2,A(2,A(0,A(0,A(0,A(0,A(0,A(0,A(1,5)))))))))
=A(2,A(2,A(0,A(0,A(0,A(0,A(0,A(0,A(0,A(1,4))))))))))
=A(2,A(2,A(0,A(0,A(0,A(0,A(0,A(0,A(0,A(0,A(1,3)))))))))))
=A(2,A(2,A(0,A(0,A(0,A(0,A(0,A(0,A(0,A(0,A(0,A(1,2))))))))))))
=A(2,A(2,A(0,A(0,A(0,A(0,A(0,A(0,A(0,A(0,A(0,A(0,A(1,1)))))))))))))
=A(2,A(2,A(0,A(0,A(0,A(0,A(0,A(0,A(0,A(0,A(0,A(0,A(0,A(1,0))))))))))))))
=A(2,A(2,A(0,A(0,A(0,A(0,A(0,A(0,A(0,A(0,A(0,A(0,A(0,A(0,1))))))))))))))
=A(2,A(2,A(0,A(0,A(0,A(0,A(0,A(0,A(0,A(0,A(0,A(0,A(0,2)))))))))))))
=A(2,A(2,A(0,A(0,A(0,A(0,A(0,A(0,A(0,A(0,A(0,A(0,3))))))))))))
=A(2,A(2,A(0,A(0,A(0,A(0,A(0,A(0,A(0,A(0,A(0,4)))))))))))
=A(2,A(2,A(0,A(0,A(0,A(0,A(0,A(0,A(0,A(0,5))))))))))
=A(2,A(2,A(0,A(0,A(0,A(0,A(0,A(0,A(0,6)))))))))
=A(2,A(2,A(0,A(0,A(0,A(0,A(0,A(0,7))))))))
=A(2,A(2,A(0,A(0,A(0,A(0,A(0,8)))))))
=A(2,A(2,A(0,A(0,A(0,A(0,9))))))
=A(2,A(2,A(0,A(0,A(0,10)))))
=A(2,A(2,A(0,A(0,11))))
=A(2,A(2,A(0,12)))
=A(2,A(2,13))
=...
僕は何とかその計算過程を追うことが出来た。僕がやめてくれと言うまで、彼女は嬉々として数式を書き続けていた。
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます