紅魔館のメイドナンバーは長谷川由紀路(TwitterID @ailinko)が2018年3月25日に考案した東方巨大数である。[1]

定義

元の記事から定義だけを取り出して書く。しかし、この定義には厳密ではないところがある。

一般多変数アッカーマン増殖法 Act.3

~アッカーマン増殖法の定義 Act.3~


 Ack(Step No.X) = Ack(Step No.X+1)^n   補足:n個に増殖するぜ。

 Ack(Final Step) = Decimal Number     補足:最後の計算結果は増殖しないぜ。


 ~アッカーマン関数の改造定義 Act.3~


 Ack(0,a) = a+n          

 Ack(b,0) = Ack(b-1,n)       

 Ack(b,a) = Ack(b-1,Ack(b,a-1))  


 ~3変数アッカーマン関数の改造定義 Act.3~


 Ack(0,0,a) = Ack(a+n,a+n)       

 Ack(c,0,a) = Ack(c-1,a+n,a+n)     

 Ack(c,b,0) = Ack(c,b-1,n)       

 Ack(c,b,a) = Ack(c,b-1,Ack(c,b,a-1)) 


 ~多変数アッカーマン関数の改造定義 Act.3~


 X : 0個以上の0以上の整数          

 Y : 0個以上の0               

 a,b : 0以上の整数             


 Ack(Y,a) = Ack(Y回 …,a+n,a+n,a+n)    補足:変数が一つ減るという意味だぜ。

 Ack(X,b,0,Y,a) = Ack(X,b-1,a+n,Y,a+n) 

 Ack(X,b,0) = Ack(X,b-1,n)         

 Ack(X,b,a) = Ack(X,b-1,Ack(X,b,a-1)) 

急増加関数の定義

 f 0【n】= n+1            

 f a【n】= f^n a-1【n】       

 

 これはそのままだな。詳しくはここに書いてあるぜ[2]


 ~急増加関数・極限順序数に関する定義~ 


 f α【n】= f α [n]【n】          

 α[n] は極限順序数 α の基本列のn番目の項。

計算方法

基本となる表記

 ~アルファゼロ関数の基本形~


 f [b.a]【n】 


 これが2変数アッカーマン増殖法を使ったアルファゼロ関数の基本形だぜ。演算のレベルを示す順序数に相当するのが [b.a] で、これを「歩数」と名付けるぜ。これは Ack(b,a) だが 「Ack」の省略形として [b.a] と記すことにする。 では、具体的な数字で計算してみるぜ。赤字が計算する箇所でグレーが計算の結果だ。


 f [1.1]【3】=                            

                                    

 f [0.[1.0]] [0.[1.0]] [0.[1.0]]【3】=             

                                    

 f [0.[1.0]] [0.[1.0]] [0.[0.3]] [0.[0.3]] [0.[0.3]]【3】= 


 こんな感じでアッカーマン関数の1ステップごとにn個に「歩数」が増殖してゆくんだ。ちなみに3行目は改造版の定義をもとにした計算だ。間違ってないぜ。

略記

 重要なことなんで念を押して解説するぜ。


 f [0.[1.0]] [0.[1.0]] [0.[0.3]] [0.[0.3]] [0.6] [0.6] 9【3】 

 

 この赤字で記した文字列はこれでひとつの 「歩数」だぜ。同じステップで増殖した仲間はまとめることもできる‥ [0.[1.0]]^2 [0.[0.3]]^2 [0.6] ^2 9 こんな感じにな。

特殊なケース

 ここで大きな流れを復習するぜ。「歩数」は演算のレベルを示す数だ。この「歩数」は「アッカーマン増殖法」によって「n個」に増殖してゆく。この「歩数」の末尾が十進数になると、「歩数」を1ステップづつ減らしてゆく事が出来る。つまり、演算のレベルを下げることが出来る。すると関数は「n重」に増殖してゆく。これを繰り返して演算のレベルが0になると、芯である「n」が大きくなって、さらにこれを繰り返すと、最終的に芯である「n」が目的の巨大数となって計算が終了するぜ。さて、f [1.1]【3】という関数で最初にfの計算となるのは f [0.6]【3】だぜ。こいつを計算すると、約「2→3→8」だな。


 f [0.[1.0]] …略… (f [0.6] (f [0.6]【3】))…略…) =

 f [0.[1.0]] …略… (f [0.6] (f 9 【3】))…略…) =

 f [0.[1.0]] …略… (f [0.6]【巨大数】)…略…) =

 f [0.[1.0]] …略… (f 6+巨大数【巨大数】)…略…) =

 f [0.[1.0]] …略… 【超巨大数】…略…)


巨大数

f α_0【n】= f [n回…n.n.n.n ]【n】

紅魔館のメイドナンバー = f α_0 1【3】 = f α_0 ( f α_0 ( f α_0【3】))

厳密な定義

Nayuta Itoが、自身のブログ内で紅魔館のメイドナンバーを厳密に定義する試みを行っている。[3]

脚注

特に記載のない限り、コミュニティのコンテンツはCC-BY-SAライセンスの下で利用可能です。