- 配列を多次元化/超次元化した関数については、BEAF をご覧ください。
配列表記は2002年に[1]Jonathan Bowers[2]によって作られた巨大関数である。これは拡張配列表記へと一般化され、また最終的にはBEAFとバードの配列表記へ一般化された。
歴史[]
Bowersはこの記法を作った約20年前、テトレーションやペンテーションのような冪乗を超えるハイパー演算子に関する議論をある本で読んだ。これが彼を巨大数への更なる研究に向かわせた。彼はその本の演算子の拡張を考案し、それは今では拡張演算子として知られ、チェーン表記のような強さを持つ。その後、Bowersは拡張した演算子が4つの数で定義可能であり、5つ以上の数を使うことでさらに拡張できるということを発見し、さらにもっと先へ演算子を拡張することを決心した。これらは配列表記を作り上げる基礎となった[2]。
Bowersは普段、配列の区切りに山括弧('<' と '>')を使っていたが、山括弧は HTML で問題が発生するため、代わりに波括弧('{' と '}')を使い、初めてサイト上でその記法が登場した。これを受け、Sbiis Saibianは元々の配列表記に波括弧を使い({a,b} = a+bという場合)、新しい配列表記には山括弧を使った(<a,b> = abという場合)[3]。慣例として、この記事の続きでは波括弧を新しい配列表記に使う。
規則[]
配列は正の整数の有限の数列により定義される。配列表記はこの数列から1つの大きな正の整数への写像、すなわち関数 \(v(A)\) である。\(A = (a_1, a_2, \ldots, a_n)\)の時、\(v(A)\)を省略した形として\(\{a_1, a_2, \ldots, a_n\}\)と書く。
- \(\{a\} = a\)、\(\{a,b\} = a^b\)。(元々の定義は \(\{a,b\}=a+b\)であったが、\(\{a,1\} = a+1 \neq a = \{a,1\}\)となり下記の規則2に反するため、変更された。)
- \(\{a,b,c,\dots,n,1\} = \{a,b,c,\dots,n\}\)
- \(\{a,1,b,c,\dots,n\} = a\)
- \(\{a,b,1,\ldots,1,c,d,\ldots,n\} = \{a,a,a,\ldots,\{a,b-1,1,\ldots,1,c,d,\ldots,n\},c-1,d,\ldots,n\}\) 言い換えれば、3番目の要素が1の時、
- その次の1でない要素の前にある全ての要素は最初の要素に置き換わり、
- 上記のうち最後のものは、元々の配列の2番目の要素が1差し引かれたものに置き換わり、
- 先述の1でない要素は1差し引かれる。
- 規則1~4のいずれの場合にも当てはまらない場合、\(\{a,b,c,d,\ldots,n\} = \{a,\{a,b-1,c,d,\ldots,n\},c-1,d,\ldots,n\}\)
拡張演算子[]
Bowersはまた「拡張された」配列表記の演算子も発明した。
\[a \{c\} b = \{a,b,c\}\]
例えば、 \(3\{3\}3 = \{3,3,3\}\) = トリトリ。
配列 {a,b,c,d,e,f,g,h}で、 a、 b、cは数字で表現され、 d個の波括弧{ }が囲んでいる。eを表現するのに、 Bowers は e - 1個の各括弧 [ ]を使い上下に配置し、 f は f - 1個の土星のような輪を使い、gはg - 1 個の X-wing brackets(両側に…> <…)が使われる。 hは90度角の3次元の角括弧で表現される。 [2][3]
変数の数による分類[]
3変数以下[]
もし3変数以下ならば、簡単に配列を解くことが出来る。
- もっとも単純なのは空のものである: \(\{\} = 1\). これは正確には正しい表記ではない。
- 1変数: \(\{a\} = a\)
- 2変数: \(\{a,b\} = a^b\)
- 3変数: \(\{a,b,c\} = a \uparrow^c b\)
他の記法による近似[]
\(\lbrace n,a+1,b+1,c+1,d+1,... \rbrace\) は、次のように近似される。
記法 | 近似 |
---|---|
多変数アッカーマン関数 | \(f^a(n); f(n)=A(...,d,c,b,n)\) |
急増加関数 | \(f_{... + \omega^2 d + \omega c + b}^{a}(n)\) |
ハーディー階層 | \(H_{\omega^{... + \omega^2 d + \omega c + b} a}(n)\) |
チューリングマシンコード[]
出典[]
- ↑ archive
- ↑ 2.0 2.1 2.2 Bowers, Jonathan. Exploding Array Function. Retrieved 2013-11-26.
- ↑ 3.0 3.1 Saibian, Sbiis. 4.1.2 - Jonathan Bowers' Extended Operator Notation. Retrieved 2013-11-26.