巨大数研究 Wiki
(カテゴリを追加)
編集の要約なし
タグ: ソースの編集
(2人の利用者による、間の12版が非表示)
1行目: 1行目:
'''紅魔館のメイドナンバー'''は長谷川由紀路(TwitterID @ailinko)が2018年3月25日に考案した[[東方巨大数]]である。<ref>[http://web.archive.org/web/20210325094449/https://ch.nicovideo.jp/NegiSoup/blomaga/ar1444591 定義が投稿された記事のアーカイブ]</ref>
+
'''紅魔館のメイドナンバー'''は[[ユーザー:長谷川由紀路|長谷川由紀路]](TwitterID @ailinko)が2018年3月25日に考案した巨大数であり、第2回[[東方巨大数]]参加作品である。<ref>[http://web.archive.org/web/20210325094449/https://ch.nicovideo.jp/NegiSoup/blomaga/ar1444591 定義が投稿された記事のアーカイブ]</ref>
   
  +
==経緯==
  +
作者によると、「みくみく数 Vol.3」という巨大数の定義を目論んだ「[[恋符マスタースパーク数|みくみくカウンター]]」という巨大関数の拡張アイデアが「紅魔館のメイドナンバー」の起源である。[[アッカーマン関数]]のステップ数の多さを利用するという「アッカーマン増殖法」には大きな誤算があった。この「[[恋符マスタースパーク数|みくみくカウンター]]」の強化パーツである「[[みくみく順序数|M2数]]」の強さが「ε₀」に到達したと推定された後、その「[[みくみく順序数|M2数]]」に間違った修正を施してしまった。その動きを模した「アッカーマン増殖法」には、少なくとも「ε₀」以上の強さがあると勘違いしたという。東方巨大数2の審査団の解析によると、その強さは「ε₀」には遠く及ばず「ω^ω^ω」に留まった。<ref>[https://docs.google.com/spreadsheets/d/1pQOYIUJO5-13DSPb55yol3aC_PsPajQ32oj8ad0HUak/edit#gid=1414482771 第2回東方巨大数の審査シート]</ref><br />
  +
 <br />
 
==定義==
 
==定義==
元の記事から定義だけを取り出して書く。しかし、この定義には厳密ではないところがある。
+
元の記事から定義だけを取り出して書く。しかし、この定義には厳密ではないところがある。<br />
   
 
===一般多変数アッカーマン増殖法 Act.3===
 
===一般多変数アッカーマン増殖法 Act.3===
  +
 <br />
アッカーマン増殖法の定義 Act.3~
+
* アッカーマン増殖法の定義 Act.3<br />
 
 
 '''Ack(Step No.X) = Ack(Step No.X+1)^n''' 補足:n個に増殖するぜ。<br />
 
 
 '''Ack(Final Step) = Decimal Number''' 補足:最後の計算結果は増殖しないぜ。<br />
 
  +
 <br />
 Ack(Step No.X) = Ack(Step No.X+1)^n   補足:n個に増殖するぜ。
 
 
* アッカーマン関数の改造定義 Act.3<br />
 
  +
 '''Ack(0,a) = a+n'''<br />
 Ack(Final Step) = Decimal Number     補足:最後の計算結果は増殖しないぜ。
 
 
 '''Ack(b,0) = Ack(b-1,n)'''<br />
 
 
 '''Ack(b,a) = Ack(b-1,Ack(b,a-1))'''<br />
 
  +
 <br />
 
 アッカーマン関数の改造定義 Act.3~
+
* 3変数アッカーマン関数の改造定義 Act.3
 
 '''Ack(0,0,a) = Ack(a+n,a+n)'''<br />
 
 
 '''Ack(c,0,a) = Ack(c-1,a+n,a+n)'''<br />
 
 
 '''Ack(c,b,0) = Ack(c,b-1,n)'''<br />
 
 
 '''Ack(c,b,a) = Ack(c,b-1,Ack(c,b,a-1))'''<br />
 Ack(0,a) = a+n          
 
  +
 <br />
 
 
* 多変数アッカーマン関数の改造定義 Act.3<br />
 Ack(b,0) = Ack(b-1,n)       
 
 
 '''X : 0個以上の0以上の整数'''<br />
 
  +
 '''Y : 0個以上の0'''<br />
 Ack(b,a) = Ack(b-1,Ack(b,a-1))  
 
  +
 '''a,b : 0以上の整数'''<br />
 
 
 '''Ack(Y,a) = Ack(Y回 …,a+n,a+n,a+n)''' 補足:変数が一つ減るという意味だぜ。<br />
 
 
 '''Ack(X,b,0,Y,a) = Ack(X,b-1,a+n,Y,a+n)'''<br />
 
 
 '''Ack(X,b,0) = Ack(X,b-1,n)'''<br />
 ~3変数アッカーマン関数の改造定義 Act.3~
 
  +
 '''Ack(X,b,a) = Ack(X,b-1,Ack(X,b,a-1))'''<br />
 
  +
 <br />
 
 
 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)) 
 
 
 
===急増加関数の定義===
 
===急増加関数の定義===
  +
 <br />
 
  +
 '''f 0【n】= n+1'''<br />
 
 
 '''f a【n】= f^n a-1【n】'''<br />
 
  +
 <br />
 f 0【n】= n+1            
 
 
 これはそのままだな。詳しくはここに書いてあるぜ<ref>実際には同じ筆者による別の記事へのリンク</ref>。<br />
 
  +
 <br />
 f a【n】= f^n a-1【n】       
 
 
* 急増加関数・極限順序数に関する定義<br />
 
 
 '''f α【n】= f α [n]【n】'''<br />
 
 
 
 '''α[n] は極限順序数 α の基本列のn番目の項'''<br />
 
 これはそのままだな。詳しくはここに書いてあるぜ<ref>実際には同じ筆者による別の記事へのリンク</ref>。
 
 
 
 
 急増加関数・極限順序数に関する定義~ 
 
 
 
 
 f α【n】= f α [n]【n】          
 
 
 α[n] は極限順序数 α の基本列のn番目の項。
 
   
 
===計算方法===
 
===計算方法===
 
====基本となる表記====
 
====基本となる表記====
  +
 <br />
 ~アルファゼロ関数の基本形
+
*アルファゼロ関数の基本形<br />
 
  +
 <br />
 
 
 '''f [b.a]【n】'''<br />
 
  +
 <br />
 f [b.a]【n】 
 
 
 これが2変数アッカーマン増殖法を使ったアルファゼロ関数の基本形だぜ。演算のレベルを示す順序数に相当するのが [b.a] で、これを「歩数」と名付けるぜ。これは Ack(b,a) だが 「Ack」の省略形として [b.a] と記すことにする。 では、具体的な数字で計算してみるぜ。<br />
 
  +
 <br />
 
  +
 '''f [1.1]【3】='''<br />
 
 
 '''f [0.[1.0]] [0.[1.0]] [0.[1.0]]【3】='''<br />
 これが2変数アッカーマン増殖法を使ったアルファゼロ関数の基本形だぜ。演算のレベルを示す順序数に相当するのが [b.a] で、これを「歩数」と名付けるぜ。これは Ack(b,a) だが 「Ack」の省略形として [b.a] と記すことにする。 では、具体的な数字で計算してみるぜ。赤字が計算する箇所でグレーが計算の結果だ。
 
 
 '''f [0.[1.0]] [0.[1.0]] [0.[0.3]] [0.[0.3]] [0.[0.3]]【3】='''<br />
 
  +
 <br />
 
 
 こんな感じでアッカーマン関数の1ステップごとにn個に「歩数」が増殖してゆくんだ。ちなみに3行目は改造版の定義をもとにした計算だ。間違ってないぜ。<br />
 
 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行目は改造版の定義をもとにした計算だ。間違ってないぜ。
 
   
 
====略記====
 
====略記====
  +
 <br />
 重要なことなんで念を押して解説するぜ。
+
 重要なことなんで念を押して解説するぜ。<br />
 
  +
 <br />
 
  +
 '''f [0.[1.0]] [0.[1.0]] [0.[0.3]] [0.[0.3]] [0.6] [0.6] 9【3】'''<br />
 
  +
 <br />
 f [0.[1.0]] [0.[1.0]] [0.[0.3]] [0.[0.3]] [0.6] [0.6] 9【3】 
 
 
 この '''[0.[1.0]] [0.[1.0]] [0.[0.3]] [0.[0.3]] [0.6] [0.6] 9''' の文字列はこれでひとつの 「歩数」だぜ。同じステップで増殖した仲間はまとめることもできる‥ '''[0.[1.0]]^2 [0.[0.3]]^2 [0.6] ^2 9''' こんな感じにな。<br />
 
 
+
 <br />
 
 この赤字で記した文字列はこれでひとつの 「歩数」だぜ。同じステップで増殖した仲間はまとめることもできる‥ [0.[1.0]]^2 [0.[0.3]]^2 [0.6] ^2 9 こんな感じにな。
 
 
 
====特殊なケース====
 
====特殊なケース====
  +
 <br />
 ここで大きな流れを復習するぜ。「歩数」は演算のレベルを示す数だ。この「歩数」は「アッカーマン増殖法」によって「n個」に増殖してゆく。この「歩数」の末尾が十進数になると、「歩数」を1ステップづつ減らしてゆく事が出来る。つまり、演算のレベルを下げることが出来る。すると関数は「n重」に増殖してゆく。これを繰り返して演算のレベルが0になると、芯である「n」が大きくなって、さらにこれを繰り返すと、最終的に芯である「n」が目的の巨大数となって計算が終了するぜ。さて、f [1.1]【3】という関数で最初にfの計算となるのは f [0.6]【3】だぜ。こいつを計算すると、約「2→3→8」だな。
+
 ここで大きな流れを復習するぜ。「歩数」は演算のレベルを示す数だ。この「歩数」は「アッカーマン増殖法」によって「n個」に増殖してゆく。この「歩数」の末尾が十進数になると、「歩数」を1ステップづつ減らしてゆく事が出来る。つまり、演算のレベルを下げることが出来る。すると関数は「n重」に増殖してゆく。これを繰り返して演算のレベルが0になると、芯である「n」が大きくなって、さらにこれを繰り返すと、最終的に芯である「n」が目的の巨大数となって計算が終了するぜ。さて、f [1.1]【3】という関数で最初にfの計算となるのは f [0.6]【3】だぜ。こいつを計算すると、約「2→3→8」だな。<br />
 
  +
 <br />
 
 
 '''f [0.[1.0]] …略… (f [0.6] (f [0.6]【3))…略…) ='''<br />
 
 f [0.[1.0]] …略… (f [0.6] (f [0.6]【3】))…略…) =
+
 '''f [0.[1.0]] …略… (f [0.6] (f 9 【3】))…略…) ='''<br />
 
 '''f [0.[1.0]] …略… (f [0.6]【巨大数】)…略…) ='''<br />
 
 f [0.[1.0]] …略… (f [0.6] (f 9 3))…略…) =
+
 '''f [0.[1.0]] …略… (f 6+巨大数巨大数】)…略…) ='''<br />
 
 '''f [0.[1.0]] …略… 【超巨大数】…略…) '''<br />
 
  +
 <br />
 f [0.[1.0]] …略… (f [0.6]【巨大数】)…略…) =
 
 
 f [0.[1.0]] …略… (f 6+巨大数【巨大数】)…略…) =
 
 
 f [0.[1.0]] …略… 【超巨大数】…略…)
 
 
 
 
===巨大数===
 
===巨大数===
  +
 <br />
 
f α_0【n】= f [n回…n.n.n.n ]【n】
+
f α_0【n】= f [n回…n.n.n.n ]【n】<br />
 
紅魔館のメイドナンバー = f α_0 1【3】 = f α_0 ( f α_0 ( f α_0【3】))<br />
 
  +
 <br />
紅魔館のメイドナンバー = f α_0 1【3】 = f α_0 ( f α_0 ( f α_0【3】))
 
 
 
==厳密な定義==
 
==厳密な定義==
 
Nayuta Itoが、自身のブログ内で紅魔館のメイドナンバーを厳密に定義する試みを行っている。<ref>[[ユーザーブログ:Nayuta Ito/ailinkoさんの紅魔館のメイドナンバーをwell-defineする]]</ref>
 
Nayuta Itoが、自身のブログ内で紅魔館のメイドナンバーを厳密に定義する試みを行っている。<ref>[[ユーザーブログ:Nayuta Ito/ailinkoさんの紅魔館のメイドナンバーをwell-defineする]]</ref>
149行目: 87行目:
 
<references />
 
<references />
 
[[カテゴリ:東方巨大数]]
 
[[カテゴリ:東方巨大数]]
  +
[[カテゴリ:数]]

2021年9月13日 (月) 07:08時点における版

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

経緯

作者によると、「みくみく数 Vol.3」という巨大数の定義を目論んだ「みくみくカウンター」という巨大関数の拡張アイデアが「紅魔館のメイドナンバー」の起源である。アッカーマン関数のステップ数の多さを利用するという「アッカーマン増殖法」には大きな誤算があった。この「みくみくカウンター」の強化パーツである「M2数」の強さが「ε₀」に到達したと推定された後、その「M2数」に間違った修正を施してしまった。その動きを模した「アッカーマン増殖法」には、少なくとも「ε₀」以上の強さがあると勘違いしたという。東方巨大数2の審査団の解析によると、その強さは「ε₀」には遠く及ばず「ω^ω^ω」に留まった。[2]
 

定義

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

一般多変数アッカーマン増殖法 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】
 
 これはそのままだな。詳しくはここに書いてあるぜ[3]
 

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

 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]] [0.[1.0]] [0.[0.3]] [0.[0.3]] [0.6] [0.6] 9 の文字列はこれでひとつの 「歩数」だぜ。同じステップで増殖した仲間はまとめることもできる‥ [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が、自身のブログ内で紅魔館のメイドナンバーを厳密に定義する試みを行っている。[4]

脚注