配列表記

配列表記（はいれつひょうき、Array Notation）は、en:Jonathan Bowersが2002年に考案した巨大数の表記法の一つである。クヌースの矢印表記の拡張によるが、クヌースの矢印表記はおろか、コンウェイのチェーン表記やその拡張表記（ピーター・ハーフォードによる拡張チェーン表記・回転矢印表記）よりも効率的に数の大きさを爆発させることができるため、海外の巨大数論者の間ではチェーン表記レベルを超える巨大数の表記法の主流となっている。 配列表記では、波括弧の中に数字をコンマで区切り入れていく。すなわち、 { a , b , c , . . . } {\displaystyle \{a,b,c,...\}} という形式である。 配列表記の規則は次の通りである。 1つ組の場合は { a } = a {\displaystyle \{a\}=a} 、2つ組の場合は { a , b } = a b {\displaystyle \{a,b\}=a^{b}} となる。 最後の数字が1の時はこれを落とせる。 { a , b , c , . . . , y , z , 1 } = { a , b , c , . . . , y , z } {\displaystyle \{a,b,c,...,y,z,1\}=\{a,b,c,...,y,z\}} 2番目の数字が1の時はそれ以降を全て落とせる。 { a , 1 , b , c , . . . , y , z } = { a } = a {\displaystyle \{a,1,b,c,...,y,z\}=\{a\}=a} ここまではチェーン表記と同じだが、ここからが異なり、これが効率良く爆発させることができる要因となっている。 3番目の数字が1の時であるが、チェーン表記のようにそれ以降を全て落とすのではなく、式で表すと次のようになる。 { a , b , 1 , . . . ( n 個 の 1 ) . . . , 1 , c , . . . , y , z } = { a , a , . . . ( n + 1 個 の  a ) . . . , a , { a , b − 1 , 1 , . . . ( n 個 の 1 ) . . . , 1 , c , . . . , y , z } , c − 1 , . . . , y , z } {\displaystyle \{a,b,1,...(n{\text{個 の 1}})...,1,c,...,y,z\}=\{a,a,...(n+1{\text{個 の }}a)...,a,\{a,b-1,1,...(n{\text{個 の 1}})...,1,c,...,y,z\},c-1,...,y,z\}} つまり、2番目の要素は先頭の要素に置き換わり、3番目以降に連続する1のうち最も右側のもの以外は全て先頭の要素に置き換わり、その最も右側のものは元の配列表記の2番目の要素を1引いた配列に置き換わり、その次の要素の値が1減るという、複雑な規則で変形する。 これは4番目以降の数字を減らす唯一のルールである。 上のいずれでもない時、次のように変形する。 { a , b , c , . . . , y , z } = { a , { a , b − 1 , c , . . . , y , z } , c − 1 , . . . , y , z } {\displaystyle \{a,b,c,...,y,z\}=\{a,\{a,b-1,c,...,y,z\},c-1,...,y,z\}} 　つまり、2番目の要素に元の配列の2番目の要素を1引いた配列を入れ、3番目の要素から1を引く。 チェーン表記が右側から変形していくのに対し、こちらは左側から変形していく。 なお、4番目以降の数字が1の時も、こちらの変形を適用する。 3つ組の配列表記は、3つ組チェーンと一致し、したがってクヌースの矢印表記とも一致するという性質がある。すなわち式で書くと { a , b , c } = a → b → c = a ↑ c b {\displaystyle \{a,b,c\}=a\rightarrow b\rightarrow c=a\uparrow ^{c}b} となる。 4つ組以上の配列表記によって巨大数を記述する場合は、先頭の要素は3以上とする必要がある。なぜなら、先頭が1であれば、その値は1となり、4つ組以上の配列表記で先頭の要素が2であれば、その値は2番目の要素が1でない限り必ず4になってしまうからである。後者の詳細は次の通りである： {2,b,c,d,…,z} ＝{2,{2,b-1,c,d,…, z},c-1,d,…,z} ＝… ＝{2,X,1,d,…,z} (Xはある数) ＝{2,2,{2,X-1,1,d,…,z},d-1,…,z} ＝{2,2,Y,d-1,…,z} (内側の配列をYと置く) ＝{2,{2,1,Y,d-1,…,z},Y-1,d-1,…,z} ＝{2,2,Y-1,d-1,…,z} ＝{2,2,Y-2,d-1,…,z} ＝{2,2,1,d-1,…,z} ＝{2,2,1,1,…,z} ＝{2,2,1,1,…,1} ＝{2,2} ＝4 つまり、3番目の要素が1まで落ちた直後に2番目の要素が2になってしまい、そうすると3番目の要素が減っても値が変わらないため3番目の要素が1にまで落ちる。更に4番目、5番目の要素と1まで落ちていき、最終的には4となる。 非拡張配列表記では、数の大きさを評価するための重要度は、最も重要なのが変数の数であり、その次に重要なのが最も右側の変数の値で、左側に行くほど重要度が下がっていく。 非拡張配列表記は、多変数アッカーマン関数と同じくらいの強さである。配列表記と多変数アッカーマン関数の間の近似関係、及びその両者の特徴の比較についてはアッカーマン関数#多変数アッカーマン関数を参照。 この配列表記にも拡張表記が考案されており、その最終形態には2種類あり、1つはBEAF(ただし2021年現在、定義が数学的に意味を持つように定式化されているのはテトレーション配列まで)、もう1つはクリス・バードが開発したバードの配列表記と呼ばれるものである。 この配列表記は急増加関数で { x , . . . , x } ≈ f ω ω ( x ) {\displaystyle \{x,...,x\}\approx f_{\omega ^{\omega }}(x)} と近似できる。 4つ組の配列表記による巨大数は、コンウェイのチェーン表記レベルの巨大数となり、5つ組の配列表記による巨大数は、ピーター・ハーフォードによる拡張チェーン表記（あるいは回転矢印表記）レベルの巨大数となり、6つ組以上になるとそのレベルを超える。 a→a→(b－1)→2＜{a,b,1,2}＜≒a→a→b→2 {a,b,1,2}とa→a→b→2の両者は矢印表記の段重ねの形にすると、a↑↑…↑↑aのb段重ねの形になるところは同じだが、末端は配列表記だとaとなるのに対し、チェーン表記だとaaとなる。 a→b→c→2については、配列表記で次の近似・大小関係が成り立つ。 {a,c,1,2}＜≒a→b→c→2＜≒{ab,c,1,2} 次に{a,b,2,2}とa→b→c→3であるが、配列表記では最後の2が3になるのではなく、3番目の1が2になることによってチェーンの…→3相当となる。 a→a→(b－1)→3＜{a,b,2,2}＜≒a→a→b→3 {a,c,2,2}＜≒a→b→c→3＜≒{ab,c,2,2} {a,b,c,2}のcを増やすことは、a→a→b→cのcを増やすことに相当する。 a→a→(b－1)→(c＋1)＜{a,b,c,2}＜≒a→a→b→(c＋1) {a,c,d-1,2}＜≒a→b→c→d＜≒{ab,c,d-1,2} そして、4つ組配列表記の末尾の数が、チェーンの長さに対応する。 {a,b,1,3}＜≒a→a→a→b→2 {a,b,c,3}＜≒a→a→a→b→(c＋1) {a,b,c,d}＜≒a→a→…(d+2変数)…→a→b→(c＋1) ここでは、ピーター・ハーフォードによる拡張チェーン表記を示す。回転矢印表記との比較については回転矢印表記#他表記との比較を参照。 {a,a,a-1,b-1}＜≒a→2b {a,b,1,1,2}＜≒a→2b→22 {a,b,2,1,2}＜≒a→2b→23 {a,b,c,1,2}＜≒a→2b→2(c+1) {a,b,1,2,2}＜≒a→2a→2b→22 {a,b,2,2,2}＜≒a→2a→2b→23 {a,b,c,2,2}＜≒a→2a→2b→2(c+1) {a,b,1,3,2}＜≒a→2a→2a→2b→22 {a,b,c,3,2}＜≒a→2a→2a→2b→2(c+1) {a,b,c,d,2}＜≒a→2a→2…(d+2変数)…→2a→2b→2(c+1) {a,a,a-1,b-1,2}＜≒a→3b {a,b,1,1,3}＜≒a→3b→32 {a,b,c,d,e}＜≒a→ea→e…(d+2変数)…→ea→eb→e(c+1) この表記法では、巨大数の近似の例は次のようになる。 グラハム数≒{4,65,1,2} コンウェイのテトラトリ（チェーン表記で3→3→3→3）≒{27,3,2,2} ふぃっしゅ数バージョン1≒{4,64,1,1,2} ふぃっしゅ数バージョン2≒{3,3,1,1,64} {3,3,2,2,1,2}＜旧バード数＜{4,3,2,2,1,2} また非拡張配列表記で定義され、名前が付けられた数としては、テトラトリ、スーパーテット、ジェネラル、ペンタトリ、スーパーペント、ヘキサトリ、クワドリーゴル、イテラルなどがある。 巨大数 クヌースの矢印表記 多変数アッカーマン関数 BEAF バードの配列表記