回転矢印表記
回転矢印表記(かいてんやじるしひょうき)もしくはバードの矢印回転表記(バードのやじるしかいてんひょうき、英: Bird's revolving arrow notation)は、クリス・バード(Chris Bird)が考案した巨大数の表記法の一つであり、コンウェイのチェーン表記の拡張により、非拡張チェーン表記よりも遥かに巨大な数を表記できるようにしたものである。[1]拡張チェーン系の表記法では開発された年代が最も古いもので、2000年頃に考案されたものと思われる。
チェーン表記の拡張版には他に、後に考案されたピーター・ハーフォードによる拡張チェーン表記などがある。
なお、この回転矢印表記は日本の2chの巨大数スレッドで一時期盛んに行われたものの、近年では巨大数論者の間でほとんど用いられていない歴史的な表記法となっている(詳細は後述)。
拡張の仕組み
矢印の本数の増加
通常のチェーン表記における、a→a→…(b個のa)…→a→aが出発点となり、これは回転矢印表記でa→→bと→を2本重ねて表記される。
ただし、この→→の機能の仕方はチェーンの→とは異なり、クヌースの矢印表記のような働きをし、演算子として解釈される。
- a→→b→→c→→d=a→→(b→→(c→→d))
更に、クヌースの矢印表記と同様に、次のように積み重なっていく。
- a→→a→→…(b個のa)…→→a→→a=a→→→b
- a→→→a→→→…(b個のa)…→→→a→→→a=a→→→→b
- a→…(n本の→)…→b=a→nb
- a→na→n…(b個のa)…→na→na=a→n+1b
このようにして複数本重ねた→は、同様に演算子としてクヌースの矢印表記のような働きをし、次のように処理される。
- a→nb→nc→nd=a→n(b→n(c→nd))
矢印の回転
クヌースの矢印表記からチェーン表記に進んだ時にa↑cb=a→b→cとしたのにならって、回転矢印表記では矢印を回転してa→cb=a↓b↓cとする。
この↓は、チェーン表記と同様に処理される。すなわち次の通りである。
- a↓b↓…↓x↓y↓1 = a↓b↓…↓x↓y
- a↓b↓…↓x↓1↓z = a↓b↓…↓x
- a↓b↓…↓x↓y↓z = a↓b↓…↓x↓(a↓b↓…↓x↓(y-1)↓z)↓(z-1)
更に、↓↓、↓↓↓…と複数本重ねると、これもクヌースの矢印表記と同様の働きとなる。
- a↓a↓…(b個のa)…↓a↓a=a↓↓b
- a↓↓b↓↓c↓↓d = a↓↓(b↓↓(c↓↓d))
- a↓↓↓b↓↓↓c↓↓↓d = a↓↓↓(b↓↓↓(c↓↓↓d))
そして更に↓を回転させると次のように←となる。
- a↓cb = a←b←c
この←も1本ではチェーン表記と同様、a←←bなどのように複数本重ねるとクヌースの矢印表記と同様の働きとなる。
このようにして、←を更に回転させると記号としては元の↑に戻るが、元のクヌースの矢印表記と区別するため、(↑1)と表記する。
- a←cb=a(↑1)b(↑1)c
以下同様に、(→1)、(↓1)、(←1)、(↑2)、(→2)、(↓2)、(←2)…と続くのである。
このように、この回転矢印表記は、クヌースの矢印表記とコンウェイのチェーン表記の特徴を併せ持った表記と見ることができる。
別表記
オリジナルの表記は以上の通りであるが、これでは矢印として「↑・→・↓・←」の4種類の符号を使っていて非効率なので、2chの巨大数スレッドで次のような別表記が考案された。
- a→b→…→y→z = ↑1(a,b,…,y,z)
- a↓b↓…↓y↓z = ↑2(a,b,…,y,z)
- a←b←…←y←z = ↑3(a,b,…,y,z)
- a(↑1)b(↑1)…(↑1)y(↑1)z = ↑4(a,b,…,y,z)
- a(↑n)b(↑n)…(↑n)y(↑n)z = ↑4n(a,b,…,y,z)
- a(→n)b(→n)…(→n)y(→n)z = ↑4n+1(a,b,…,y,z)
- a(↓n)b(↓n)…(↓n)y(↓n)z = ↑4n+2(a,b,…,y,z)
- a(←n)b(←n)…(←n)y(←n)z = ↑4n+3(a,b,…,y,z)
この別表記によれば、回転矢印表記を表す関数は次のように定義される。
- a,b,…,zは全て自然数とする。
- 多変数関数↑1を次で定める。
- ↑1(a):=a
- ↑1(a,b):=a^b
- 3変数以上に対しては、
- ↑1(a,b,…,x,y,z):=↑1(a,b,…,x,y) (y=1 or z=1)
- ↑1(a,b,…,x,y,z):=↑1(a,b,…,x,↑1(a,b,...,x,y-1,z),z-1) (y>1,z>1)
- 多変数関数↑n-1から、多変数関数↑nを作る。(n>1)
- ↑n(a):=a
- ↑n(a,b):=a^b
- ↑n(a,b,c):=a^b (b=1 or c=1)
- ↑n(a,b,2):=↑n-1(a,a,…,a) (aがb個)
- ↑n(a,b,c):=↑n(a,↑n(a,b-1,c),c-1) (b>1,c>2)
- 4変数以上に対しては、
- ↑n(a,b,…,x,y,z):=↑n(a,b,…,x,y) (y=1 or z=1)
- ↑n(a,b,…,x,y,z):=↑n(a,b,…,x,↑n(a,b,…,x,y-1,z),z-1) (y>1,z>1)
他表記との比較
ここでは、回転矢印表記とピーター・ハーフォードの拡張チェーン表記と配列表記でどのような近似・大小関係になるかを示す。「>~」は「a>~b」と使った場合、「aはbに近似し、なおかつaの方が厳密には大きい」という意味で、「<~」はその逆である。
- a→→b
- = a→2(b-1)
- >~ {a,a,a-1,b-2}
- チェーン表記によるCG関数は、cg(n)=n→n→…(n個のn)…→n→nだが、これをピーター・ハーフォードの拡張チェーン表記と回転矢印表記とで比較すると、前者ではn→2(n-1)、後者ではn→→nとなる。これは前者の表記によるa→2bのbは→の本数を表しているのに対し、後者の表記によるa→→bのbはaの個数を表しているという違いがあるからである。
- a→→→b
- <~ a→2b→22
- <~ {a,b,1,1,2}
- a→cb = a↓b↓c
- <~ a→2b→2(c-1)
- <~ {a,b,c-2,1,2}
- a↓b↓c↓2
- <~ {ab,c,1,2,2}
- > {a,c,1,2,2}
- a↓b↓c↓d
- <~ {ab,c,d-1,2,2}
- >~ {a,c,d-1,2,2}
- a↓a↓…(b個のa)…↓a↓a = a↓↓b
- >~ {a,a,a-1,b-2,2}
- a↓cb = a←b←c
- <~ {a,b,c-2,1,3}
一般的に、別表記を使った比較では次のようになる。
- ↑e(a,b,c)
- <~ {a,b,c-2,1,e}
- ↑e(a,a,…,a,b,c) (カッコ内の変数の数はd個)
- >~ {a,b,c-1,d-2,e}
旧バード数
回転矢印表記を考案したクリス・バードは、これにちなんだ巨大数として、バード数(旧バード数)を定義した。ここで見出しを「旧バード数」としているのは、後述するように現在では新しい定義によるバード数(新バード数)を定義しているからである。
旧バード数の計算ではまず、N=3(↑G)(↑G)(↑G)(↑G)3(Gはグラハム数)という定数を考え、それを下敷きにして強化に次ぐ強化を繰り返し行うといった数であるが、その強化する計算過程(定義)には大きく分けて3段階ある。
- 第1段階:関数X(n)
- まず、X(1)=N(↑N)NN を考える。
- X(n)=X(n-1)(↑X(n-1))X(n-1)(n-1)というプロセスで強化していく。
- そこでX(N)に達すると、X(N)をX1(N)と呼び直して第2段階に移る。
- 第2段階:添字付きの関数X(n)
- X2(1)=X1(N)
- X2(2)=(X1)2(N)=X1(X1(N))
- X3(1)=X2(N)=(X1)N(N) …というプロセスでまた強化していく。
- H=XN(N)に達すると第3段階に移る。
- 第3段階:添字部分への入れ子操作
- XH(N),XXH(N)(N),…のように、今度はXの添字部分に入れ子を作っていく形で強化していく。
- 入れ子操作をXH(N)回行った結果生まれる巨大数が旧バード数となる。
使用状況
2chの巨大数スレッドでは、各種「ふぃっしゅ数」が考案され、ふぃっしゅ数自体の定義にはこの表記法は直接使われなかったが、ふぃっしゅ数バージョン1やふぃっしゅ数バージョン2が考案された頃は、2chの巨大数スレッドで一時期この表記法が盛んに行われ、その頃はふぃっしゅ数とバード数でどちらが大きいかで、「魚(ふぃっしゅ数)と鳥(バード数)の対決」だと盛り上がっていた。
「魚と鳥の対決」
ふぃっしゅ数バージョン1とふぃっしゅ数バージョン2、そして旧バード数におけるNは、チェーン表記の拡張表記で表現あるいは近似できる範囲内であり、例えばふぃっしゅ数バージョン1はチェーン表記の拡張表記で近似すると、ピーター・ハーフォードの拡張チェーン表記では3→263→22と3→264→22の間に収まり、回転矢印表記では3→→→63と3→→→64の間に収まる。旧バード数そのものはその範囲を軽く超えたところにある。定義の再帰のレベルを見ても、ふぃっしゅ数バージョン1は三重再帰1回、ふぃっしゅ数バージョン2は三重再帰63回、旧バード数は四重再帰1回で、ふぃっしゅ数バージョン2までの時点では「魚と鳥の対決」は鳥の勝ちだった。
近年巨大数論者の間でほとんど用いられない理由
回転矢印表記は、確かに矢印表記からチェーン表記に拡張した時と同じ方法でチェーンを拡張するという単純な発想で非拡張チェーンのレベルを超える巨大数を生み出すものの、
- 配列表記の方が効率的に数の大きさを爆発させることができることを2006年にクリス・バード自身が証明し(バードの証明)、回転矢印表記及び旧バード数に関する記述は既に自身のホームページから削除されていること
- 回転矢印表記相当のレベルの巨大数を表す場合でも、同じ拡張チェーン系で後に考案されたピーター・ハーフォードによる拡張チェーン表記の方が定義がすっきりしていること。ちなみに、回転矢印表記やピーター・ハーフォードによる拡張チェーン表記に相当するレベルの巨大数は、多変数アッカーマン関数で4変数程度、配列表記で5変数程度のレベルとなる。
といった理由により、近年では巨大数論者の間では回転矢印表記が用いられることはほとんどなくなっており、特に海外ではこの記法は普及しなかった。
実際、旧バード数におけるN(=3(↑G)(↑G)(↑G)(↑G)3)と旧バード数を配列表記で近似してみると、旧バード数におけるNは≒{3,3,2,1,4G+1}≒{3,3,2,1,G}≒{3,3,2,1,{4,65,1,2}}≒{G,2,1,1,1,2}(詳細は後述)と5~6変数レベル、旧バード数そのものも大雑把に見積もっても{3,3,2,2,1,2}より大きく{4,3,2,2,1,2}より小さい(可能な限り厳密に見積もれば≒{3,{{3,3,2,1,{4,65,1,2}},3,1,2,1,2},1,2,1,2})という結果となり、これは6変数配列表記レベルの数としては比較的小さい数に留まってしまう。
その後クリス・バードは配列表記を用いてそれを発展させて巨大数を作成する方針に転換し、新たな定義によるバード数(新バード数)を定義し、実際にそれは計算可能なふぃっしゅ数のうち最大のふぃっしゅ数バージョン6をも大きく超える数となっている。
このように、近年では巨大数論者の間で見向きもされなくなった回転矢印表記と旧バード数であるが、日本の巨大数の歴史という面では、回転矢印表記が2chでしばらく用いられたのと、旧バード数を本質的に超えることを目標にふぃっしゅ数バージョン3(回転矢印表記のレベルを超えた巨大数)が開発されたという点を考慮すると、それなりに重要なポジションを占めていると考えることもできる。
ちなみに旧バード数におけるNの変形および配列表記による近似の詳細は次の通りである:
N=3(↑G)(↑G)(↑G)(↑G)3、これは更に回転矢印表記の定義より、3(→G)3(→G)4と直すことができ、別表記では↑4G+1(3,3,4)となる。 つまり配列表記に当てはめて≒{3,3,2,1,4G+1}となる。
しかし、Gは十分な巨大数なので、4を掛けたり1を足したりした所で巨大数として無視できるレベルの増加にしかならない。つまり、≒{3,3,2,1,G}と近似しても良い。更に、≒{3,3,3,3,G}または{10,10,10,10,G}、あるいは≒{G,G,G,G,G}={G,2,1,1,1,2}としても良い。上位の数字が巨大数であれば、下位の数字は(その数のオーダーを超えない範囲で)いかようにも近似できる。
各種ふぃっしゅ数とバード数の大小関係は次の通りである:
ふぃっしゅ数バージョン1<ふぃっしゅ数バージョン2<(旧バード数におけるN)<旧バード数<ふぃっしゅ数バージョン3<ふぃっしゅ数バージョン5<ふぃっしゅ数バージョン6<新バード数<ふぃっしゅ数バージョン4<ふぃっしゅ数バージョン7