関数と表記法


巨大数を生み出す関数や表記法についてまとめます。


超階乗 (Superfactorial)

Pickover (1995)は、nの超階乗n$を以下のように定義した。
superfactorialの式

Superfactorial from MathWorld

タワー表記 (Arrow Notation)

以下のように定義される表記法。


Arrow Notation from MathWorld
Power Tower from MathWorld

アッカーマン関数 (Ackermann's Function)

以下のように定義される関数A(x,y)。


以下のような定義ak(x,y,z)を用いることもある。この場合、 x↑m y = ak(x, y, m+1)となる。



帰納的関数論
Ackermann's Function from MathWorld
Thoughts on the Ackermann Function
Ackermann's function
Ackermann Number from MathWorld

モーサー表記 (Steinhaus-Moser notation)

どなたか説明を書いてください。以下に英語の説明があります。

Steinhaus-Moser notation from MathWorld
Big numbers by Susan


チェーン表記 (Chained Arrow Notation)

基本的な定義(3つの数字が並んでいる場合)は以下のとおり。
a↑・・・(c個)・・・↑b = a→b→c

さらに、以下のように、4つ以上の数字を連ねて書くことができる。

  1. チェーンの最後の数が1のときはこれを落とすことができる。
     a→b→...→x→y→1
    = a→b→...→x→y
  2. チェーンの最後から2番目の数が1の場合、これと最後の数をまとめて落とせる。
     a→b→...→x→1→z
    = a→b→...→x
  3. 次のような変形によって最後とその前の数を減らすことができる。
     a→b→...→x→y→z
    = a→b→...→x→(a→b→...→x→y-1→z)→z-1

チェーン表記を用いると、巨大数の大小関係を以下のように比較できる(ゼミより)。

10→2→2 < 3→3→2 < 無量大数 < エディントン数 < センティリオン
< 10→3→2 < 3→4→2 < 不可説不可説転 < グーゴルプレックス
< 10→4→2 < 3→5→2 < スキューズ数 < 第2スキューズ数
< 10→5→2 < 3→6→2
< 3→3→3 < 3→3→64→2 < グラハム数 < 3→3→65→2
< 3→3→3→3

ゼミの記録
Chained Arrow Notation from MathWorld


Hardy function

Hardy functionとは、非常に強力な増大をする関数です。
その特徴として、順序数を利用していることが挙げられます。

・順序数とは
 有限個のものに限らず、整列されたものの順番を示す、
 拡張された数(序数)。

自然数も順序数です。さて、1,2,3,4,5,…と順序数を並べた
列を考えると、
この列に現れる順序数はすべて有限です。そこで、これら
すべての有限の順序数よりも大きい無限順序数というものを
考えることができます。そのような無限順序数のうち、
最小のものをωと呼びます。
このとき、1,2,3,4,5,…を、ωに収束する基本列、と呼ぶ
ことができます。

ωより大きい順序数は、ω+1,ω+2,ω+3,…のように続きます。
さて、ω*2という順序数を考えると、ω*2=ω+ωなので、
(通常の交換法則が成り立たないことに注意。例えば2*ω=ω)
ω,ω+1,ω+2,ω+3,…はω*2に収束する基本列です。

数列やその一般項を{a_n}やa_nと表記するように、基本列は
Λ(x)と表記します。場合によって列そのものを指したり、
収束した1つの式を指したりします。
上のω,ω+1,ω+2,ω+3,…については、Λ(x)=ω+xとなります。
このように、基本列を用いて定義した順序数を
極限順序数と呼びます。
なお、αが順序数のとき、ある順序数βが存在してα=β+1となるならば、
αは後続順序数と呼ばれ、そうでないときは極限順序数です。
例えばωは極限順序数ですが、ω+1は極限順序数では
ありません。
なお、ωは0でない極限順序数のうち最小です。
ωに収束する基本列はΛ(x)=xとなります。

さて、Hardy functionの定義は、
大きく分けると下の二種類があるようです。

(1)
 F[0](x)=x+1
 F[α+1](x)=F[α]^x(x) (αは順序数)
 F[λ](x)=F[Λ(x)](x)
(λは極限順序数、Λ(x)はλに収束する基本列)

(2)
 H[0](x)=x+1
 H[α+1](x)=H[α](x+1)
 H[λ](x)=H[Λ(x)](x)

FとHの間には、F[α](x)=H[ω^α](x)という関係が成り立つ
そうです。
ではまず(1)の定義から見ていきましょう。

F[0](x)=x+1 は特に問題ないと思います。
例えばF[0](2)=2+1=3 です。

F[α+1](x)=F[α]^x(x) ですが、とりあえずαに自然数を入れて考えると、
例えば、
F[3](3)=F[2]^3(3) なんてものがあるとします。
ここでのF[2]^3(3)の扱いですが、展開していくと、

F[2]^3(3)
=F[2](F[2]^2(3))
=F[2](F[2](F[2](3)))のように入れ子操作を行います。

さて問題の箇所です。
F[λ](x)=F[Λ(x)](x) とはどういうことなのか。
ここのために長い前説があった訳です。
ではλにωを入れてみましょう。

F[ω](x)=F[Λ(x)](x)
=F[x](x)

となります。
λにω*2を入れた場合は、
F[ω*2](x)=F[ω+x](x)   といった具合です。

ここで、ω+xのxには0や自然数が入るので、これは
極限順序数ではありません。
ので、これを展開する場合は、
F[ω+x](x)=F[ω+(x-1)]^x(x) のようにします。
x=0のときは
F[ω+0](0)=F[ω](0)=F[0](0)=0+1=1となります。

(2)はどうでしょう。
一行目は問題ありません。次の、
H[α+1](x)=H[α](x+1) も、数が順次[ ]から( )へ
流れていくというだけです。
これを繰り返すことで、すなわち
H[n](x)=H[0](x+n) のようなことになる訳です。
なお、以下のような場合、
ωをxではなく、( )の中身に置き換える必要があります。
つまり例えば、

 H[ω](x+n)=H[Λ(x+n)](x+n)=H[x+n](x+n)=2(x+n)+1=2x+2n+1
 H[ω](2x)=H[Λ(2x)](2x)=H[2x](2x)=4x+1

という工程になります。
定義の三行目は(1)と同様です。



巨大数研究室