2

巨大数作ってみた

169
0
$$$$

最近巨大数という概念があることを知ったので、自分でも作ってみようと思い立ちました。
初めて作ったものと、その改良版を紹介します。

巨大数アイデア1 配列

※巨大数においての「配列表記」とは別です。
このアイデアは、↑表記を重ね合わせることで強くなる、という至極シンプルなアイデアによるものです。
次のような配列$S$を考える。

$$ S=(x_1,x_2,x_3,...,x_n)= {\displaystyle {\begin{aligned}\\&\left.{\begin{matrix}x_1\underbrace {\uparrow \uparrow \uparrow \uparrow \uparrow \uparrow \cdots \cdots \cdots \cdots \cdots \cdots \cdots \cdots \uparrow \uparrow \uparrow } x_1\\\qquad \quad x_2\underbrace {\uparrow \uparrow \uparrow \uparrow \uparrow \uparrow \cdots \cdots \cdots \cdots \uparrow \uparrow \uparrow } x_2{\text{ arrows}}\\\vdots \\\qquad \quad x_{n-1}\underbrace {\uparrow \uparrow \uparrow \uparrow \uparrow \uparrow \cdots \cdots \uparrow \uparrow \uparrow } x_{n-1}{\text{ arrows}}\\x_n{\text{ arrows}}\end{matrix}}\right\}n{\text{ layers}}\end{aligned}}} $$
例えば
$$ \displaystyle {\begin{aligned} (2,2,3)={\begin{matrix}&2 \underbrace {\uparrow\uparrow\cdots\uparrow}2\\\qquad \quad &3\underbrace{\uparrow\uparrow\uparrow}3 \\\quad &3 \end{matrix}} =2\underbrace {\uparrow\uparrow\cdots\uparrow}_{\underbrace {3^{3^{3^{.\,^{.\,^{.\,^{3}}}}}} }_{3^{27}}}2 \end{aligned}}$$
などと表せます。
これを用いれば、グラハム数なども
$G^{64}(4)=(3,3,3,...,3(63個の3),4)$と表すことができます。
次にこの配列自身を複製するためのパラメタを導入します。

そして、この配列$S$に対してパラメータ$p$を考え、順次配列$S_p$を以下のように再帰的に定義する。
$$S_p=\left[ x_1,x_2,x_3,...,x_n;p\right]$$
$$ \displaystyle \begin{align} \left\{{\begin{matrix} \left[\underbrace {\left[x_1,x_2,...,x_n;p-1\right],\left[x_1,x_2,...,x_n;p-1\right],\left[x_1,x_2,...,x_n;p-1\right],...,\left[x_1,x_2,...,x_n;p-1\right]};p-1\right]~~(\text{if}.p\ge1)\\\left[x_1,x_2,...,x_n;p-1\right]\text{個} \\ \\(x_1,x_2,...,x_n)~~(\text{if}.p=0)\end{matrix} }\right. \end{align} $$
例えば、
$$\begin{aligned} \begin{matrix} \left[ 2,2;1\right]=\left[\underbrace { \left[2,2;0\right],\left[2,2;0\right],...,\left[2,2;0\right]};0\right] \\ \qquad \qquad\qquad\qquad\qquad\qquad\quad \left[2,2;0\right]\text{個}=(2,2)=2\uparrow\uparrow2=4\text{個} \end{matrix} \end{aligned}$$
$$\begin{aligned}\qquad\qquad\qquad\quad \ =&\left[4,4,4,4;0\right] \\=&(4,4,4,4) \end{aligned}$$であり、
$$\begin{aligned} {\begin{matrix} &(4,4,4,4)= 4\underbrace {\uparrow\uparrow\uparrow\cdots\uparrow}4 \\&\qquad \qquad \ \ \quad 4\underbrace {\uparrow\uparrow\cdots\uparrow}4 \\&\qquad \qquad \quad \ 4 \underbrace {\uparrow\uparrow\uparrow\uparrow}4 \\&\qquad \qquad \quad \ 4 \end{matrix}}\end{aligned}$$
である。

やってみれば分かりますが、この数は相当大きくなります。
配列の要素自体よりも、パラメタを増やすことで爆発的に数を大きくさせられます。
そして、更にこの順次配列に対して第2パラメタを導入して、などやっていったのですが...
結局これは多変数アッカーマン関数等の真似事(しかもそれらより著しく弱い)になってしまっています。
そのため、この配列の追及はここでストップさせました。

巨大数アイデア2 再帰重ね合わせ

先ほどの配列は、再帰的定義を主軸に大きくさせていました。では、重ね合わせと再帰的定義を組み合わせたらどうなるでしょうか?
というのが、この巨大数(を生成する関数)のアイデアです。
まずは、↑表記を表す記号を新たに導入します。
$\displaystyle *ab=\begin{eqnarray} \left\{ \begin{array}{l} a\uparrow^{b}a=a\underbrace {\uparrow\uparrow\cdots\uparrow}_{b\text{本}}a~~(\text{if}.b\ge1) \\ 1~~~(\text{if.}b=0) \end{array} \right. \end{eqnarray}$
例えば、$*31=3\uparrow3=27$,$*33=3\uparrow\uparrow\uparrow 3= \underbrace {3^{3^{3^{.\,^{.\,^{.\,^{3}}}}}}}_{3\uparrow\uparrow3段}$
となります。
更に、$*3*3*34$などと連なって表示される場合は、一番右から計算します。
即ち、
$$*3*3*34=*3(*3(*34))$$
ということです。

(※補足ですが、記号$*$$a$$b$の前にあるため、$a$$b$が二桁以上になると、どこまでが$a$でどこからが$b$かわからなくなります。
そのため、$a$は必ず一桁の数とし、$*$の直後の数を$a$,それ以降を$b$と定めましょう。シンボルを減らす操作や重ね合わせの操作において
$a$が大きくなることはないので、これなら定義不足ということにはならないはずです。)

そして、次にこの$*$の数を増やしていきます。
$\displaystyle \underbrace {***\cdots*}_{n個}ab=*^{(n)}ab$と表記します。
そして、$\displaystyle *^{(n)}ab$$\displaystyle *^{(n-1)}ab$の間には次のような関係が成立します。
${*^{(n)}ab}=\begin{eqnarray} \left\{ \begin{array}{l} *^{(n-1)}abの*^{(n)}a(b-1)クラス重ね合わせ ~~~(\text{if.}b\ge1)\\ *^{(n-1)}aa\qquad\qquad\qquad\qquad\qquad\qquad\quad~~~(\text{if.}b=0) \end{array} \right. \end{eqnarray}$

クラスと層

ここで、クラスと層について定義します。
まず、ある数$N$が、
$$N=\underbrace {*a*a*a\cdots*a}_{x個の*}a$$
と表されるとき、この$x$を「第1層$l_1$の記号量$ \#S(l_{1})$」と表します。例えば、
$N=*a*a*aa$だった場合、$\#S(l_{1}) =3$です。
そして、あるクラスにはいくつかの層が存在し、互いの層の間の関係は以下のようになります。
$\#S(l_{k})=\underbrace {*a*a*a\cdots*a}_{\#S(l_{k+1})}a$
更に、あるクラスの最後の層の一つ手前の層の記号量は、$\#S(l_k)=*^{(n)}a(b-1)$となります。
つまり、$\displaystyle *^{(n)}ab$の1クラス目は、
$$ *^{(n)}ab= {\displaystyle {\begin{aligned}\\&\left.{\begin{matrix}\underbrace {*^{(n-1)}a*^{(n-1)}a*^{(n-1)}a*^{(n-1)}a*^{(n-1)}\cdots\cdots\cdots\cdots*^{(n-1)}a}a \\\qquad \quad a\underbrace {*^{(n-1)}a*^{(n-1)}a*^{(n-1)}a*^{(n-1)}a*^{(n-1)}\cdots\cdots\cdots*^{(n-1)}a} a{\text{ symbols}}\\\vdots \\\qquad \quad a\underbrace {*^{(n-1)}a*^{(n-1)}a*^{(n-1)}a*^{(n-1)}a \cdots\cdots*^{(n-1)}a} a{\text{ symbols}}\\ *^{(n)}a(b-1){\text{ symbols}}\end{matrix}}\right\}x{\text{ layers}}\end{aligned}}} $$
のように構成されています。そして、この$x$は、このクラス1における層数$\#L(C_{1})$で表します。
そして、クラスk($C_k$)とクラスk+1($C_{k+1}$)の間には次の関係があります。
$$\#L(C_k)={\displaystyle {\begin{aligned}\\&\left.{\begin{matrix}\underbrace {*^{(n-1)}a*^{(n-1)}a*^{(n-1)}a*^{(n-1)}a*^{(n-1)}\cdots\cdots\cdots\cdots*^{(n-1)}a}a \\\qquad \quad a\underbrace {*^{(n-1)}a*^{(n-1)}a*^{(n-1)}a*^{(n-1)}a*^{(n-1)}\cdots\cdots\cdots*^{(n-1)}a} a{\text{ symbols}}\\\vdots \\\qquad \quad a\underbrace {*^{(n-1)}a*^{(n-1)}a*^{(n-1)}a*^{(n-1)}a \cdots\cdots*^{(n-1)}a} a{\text{ symbols}}\\ *^{(n)}a(b-1){\text{ symbols}}\end{matrix}}\right\}{\#L(C_{k+1})}{\text{ layers}}\end{aligned}}}$$
そして、$k=*^{(n)}a(b-1)$となったとき、そのクラス$\displaystyle C_{*^{(n)}a(b-1)}$の層数$\displaystyle \#L(C_{*^{(n)}a(b-1)})=*^{(n)}a(b-1)$となります。
このように、クラスに属する層は互いの記号量を示し、クラスは互いの層数を示します。クラスの数は$*^{(n)}a(b-1)$個です。

計算例

この数はあまりにも大きくなりすぎるため、クラス数を計算するので精一杯です。
$\text{**}31$を計算してみましょう。
定義から、$\text{**}31$のクラス数は、$\text{**}3(1-1)=\text{**}30=\text{*}33$です。
$\text{*}33=3\uparrow^{3}3$
$=3\uparrow\uparrow\uparrow 3= \underbrace {3^{3^{3^{.\,^{.\,^{.\,^{3}}}}}}}_{3\uparrow\uparrow3段}$
これは先ほど計算していましたね。
これは、飽くまで「クラス数」です。実際の数の表示は、先ほどの定義にあった通り、一つのクラス内で一番深い層が$3\uparrow^{3}3$で、
それぞれの層数は次のクラスの値が決めている、というわけです。
ちなみに、$*^{(n)}2m~~(n,m\ge1)$は恒等的に$4$となります。
なぜならば、どんな$n,m$の値をとっても、最終的には
$*^{n}2m=*2N ~(Nは自然数)$という形になり、$2\uparrow\uparrow\cdots\uparrow2=\cdots=2\uparrow2=4$となるからです。
$n=\text{1}$ かつ$m=0$だった場合は1になります。

巨大数を定義

これで$*^{(n)}ab$の意味を定義できたので、あとはこの$n,a,b$に適当な数を入れてオリジナルの巨大数を作りましょう。
まず、先ほどの補足の通り、$a$は一桁にする必要があります。数を大きくするのに$a$の影響はほとんどないので、まったく問題ありません。
定義から分かる通り、数を大きくするために大事なのは、$n$の数を増やすことです。$n$はそのまま再帰の回数に関わってきますので、
派手に大きくしましょう。
そして、何よりも忘れてはいけないのは、$*^{(n)}ab$は「数」を表すということです。では、この表示そのものを$n$に代入してしまいましょう。

$$T_K=*^{(**33)}33$$と定義し、「浪人生の苦難の数」と名付けます。

まとめ

宇宙の素粒子の数がまったく塵芥になってしまうほど巨大な数が巨大数です。
現在様々な定義の巨大数が世界中の人によって生み出されています。
定義を理解し、急増加関数で序列をつけることは出来こそすれ、その数の莫大さを生身で実感することは人類には不可能です。
世界80億人を1か所に集めた光景さえ想像することは難しいのですから、巨大数は言わずもがなです。
しかし、この宇宙に存在することが許されず、想像することもできないような数を創造できるのが巨大数、そして何より数学の
奥深さかと思います。
今回は計算可能の範囲で作りましたが、いずれは計算不可能の巨大数も作ってみたいですね。
以上です。

投稿日:724
更新日:724
OptHub AI Competition

この記事を高評価した人

高評価したユーザはいません

この記事に送られたバッジ

バッジはありません。

投稿者

浪人生
浪人生
22
1625
n=1

コメント

他の人のコメント

コメントはありません。
読み込み中...
読み込み中