数学 では、ハイパー演算シーケンスは、 単項演算 (n = 0の後継関数 )から始まる算術演算(この文脈ではハイパー演算 と呼ばれる)の無限シーケンスです 。シーケンスは、加算 (n = 1)、乗算 (n = 2)、およびべき乗 (n = 3)の二項演算 で続きます。[ nb 1 ] その後、シーケンスは右結合法 を使用してべき乗を超える二項演算に進みます。べき乗を超える演算については、このシーケンスのn 番目の要素は、ルーベン・グッドスタインによって、 ギリシャ語 の接頭辞nに -ation を付けたものにちなんで名付けられています(テトレーション (n = 4)、ペンテーション(n = 5)、ヘキサーション(n = 6)など) 。これは、クヌースの上向き矢印記法で n − 2 本の矢印を使用して記述できます。各ハイパーオペレーションは、前のハイパーオペレーションに関して再帰的に理解することができる。
1 [ n ] b = 1 [ n − 1 ] ( 1 [ n − 1 ] ( 1 [ n − 1 ] ( ⋯ 1 [ n − 1 ] ( 1 [ n − 1 ] ( 1 [ n − 1 ] 1 ) ) ⋯ ) ) ) ⏟ b コピー 1 、 n ≥ 2 {\displaystyle a[n]b=\underbrace {a[n-1](a[n-1](a[n-1](\cdots a[n-1](a[n-1](a[n-1]a))\cdots )))} _{\displaystyle b{\mbox{ }}a のコピー},\quad n\geq 2} また、クヌースによるアッカーマン関数 の上向き矢印バージョンのように、定義の再帰規則部分に従って定義することもできます。
1 [ n ] b = 1 [ n − 1 ] ( 1 [ n ] ( b − 1 ) ) 、 n ≥ 1 {\displaystyle a[n]b=a[n-1]\left(a[n]\left(b-1\right)\right),\quad n\geq 1} これは、スキュー数 や グーゴルプレックス プレックス(例:50 [ 50 ] 50 {\displaystyle 50[50]50} スキューズ数やグーゴルプレックスプレックスよりもはるかに大きいが、グラハム数 やTREE(3) のように、それらでさえ簡単に示すことができない数もある。
この再帰ルールは、ハイパーオペレーションの多くのバリエーションに共通するものである。
意味 ハイパーオペレーションシーケンスは、 バイナリ演算 のシーケンス である。H n : ( N 0 ) 2 → N 0 \displaystyle H_{n}\colon (\mathbb {N} _{0})^{2}\rightarrow \mathbb {N} _{0}} 以下のように再帰的に 定義される。 H n ( 1 、 b ) = { b + 1 もし n = 0 1 もし n = 1 そして b = 0 0 もし n = 2 そして b = 0 1 もし n ≥ 3 そして b = 0 H n − 1 ( 1 、 H n ( 1 、 b − 1 ) ) さもないと 。 {\displaystyle H_{n}(a,b)={\begin{cases}b+1&{\text{if }}n=0\\a&{\text{if }}n=1{\text{ and }}b=0\\0&{\text{if }}n=2{\text{ and }}b=0\\1&{\text{if }}n\geq 3{\text{ and }}b=0\\H_{n-1}(a,H_{n}(a,b-1))&{\text{otherwise}}\end{cases}}.} n = 0, 1, 2, 3 の場合、この定義は、後継 演算 (単項演算)、加算 、乗算 、べき乗 の基本算術演算をそれぞれ次のように 再現します。H 0 ( 1 、 b ) = b + 1 、 H 1 ( 1 、 b ) = 1 + b 、 H 2 ( 1 、 b ) = 1 × b 、 H 3 ( 1 、 b ) = 1 b {\displaystyle {\begin{aligned}H_{0}(a,b)&=b+1,\\H_{1}(a,b)&=a+b,\\H_{2}(a,b)&=a\times b,\\H_{3}(a,b)&=a^{b}\end{aligned}}} すべての非負整数a とb に対して。したがって、ハイパー演算は、後継、加算、乗算、べき乗で始まる関数のシーケンスにおける「次は何ですか?」という質問への答えと見なすことができます。 整数 乗算が反復加算として定義され、整数べき乗が反復乗算によって定義されるのと同様に、次のハイパー演算であるテトレーションは 反復べき乗によって定義されます。たとえば、H 4 ( 1 、 3 ) = テトラレーション ( 1 、 3 ) = 1 1 1 {\displaystyle H_{4}(a,3)=\operatorname {tetration} (a,3)=a^{a^{a}}} 3 つの電力塔があり、H 4 ( 1 、 4 ) = テトラレーション ( 1 、 4 ) = 1 1 1 1 {\displaystyle H_{4}(a,4)=\operatorname {tetration} (a,4)=a^{a^{a^{a}}}} 同様に、5 番目のハイパー演算ペンテーション は反復テトラションによって定義され、H 5 ( 1 、 3 ) = テトラレーション ( 1 、 テトラレーション ( 1 、 1 ) ) {\displaystyle H_{5}(a,3)=\operatorname {tetration} (a,\operatorname {tetration} (a,a))} 。
ハイパー演算階層のパラメータは、類似のべき乗項で呼ばれることがあります。つまり、a は底 、b は指数 (またはハイパー指数 )、そしてnは ランク (またはグレード )です。 一般に、H n ( 1 、 b ) {\displaystyle H_{n}(a,b)} 「 aの b 番目のn 化」と読むことができるので、H 4 ( 7 、 9 ) {\displaystyle H_{4}(7,9)} 「7の9番目のテトラレーション」と読み、H 123 ( 456 、 789 ) {\displaystyle H_{123}(456,789)} 「456 の 789 番目の 123-ation」と読みます。
ハイパー演算を記述する別の方法として、コンパクト表記法がある。1 [ n ] b {\displaystyle a[n]b} のためにH n ( 1 、 b ) {\displaystyle H_{n}(a,b)} この表記法では、指数は次のように表されます。1 [ 3 ] b = 1 b {\displaystyle a[3]b=a^{b}} 、テトラションは次のように表記されます1 [ 4 ] b {\displaystyle a[4]b} (となることによって1 [ 4 ] 3 = 1 1 1 {\displaystyle a[4]3=a^{a^{a}}} ペンテーションは次のように表記されます1 [ 5 ] b {\displaystyle a[5]b} など。ハイパー演算は、クヌースの上向き矢印記法 でも表現できます。この記法では、1 ↑ b {\displaystyle a\uparrow b} 指数関数を表す1 b {\displaystyle a^{b}} 、1 ↑ ↑ b {\displaystyle a\uparrow \uparrow b} テトラレーションを表す、1 ↑ ↑ ↑ b {\displaystyle a\uparrow \uparrow \uparrow b} または1 ↑ 3 b {\displaystyle a\uparrow ^{3}b} ペンテーションを表す1 [ 5 ] b {\displaystyle a[5]b} より一般的にはH n ( 1 、 b ) = 1 ↑ n − 2 b {\displaystyle H_{n}(a,b)=a\uparrow ^{n-2}b} のためにn ≥ 0. {\displaystyle n\geq 0.} もう一つの選択肢は、コンウェイ連鎖矢印記法 です。この記法では、H n ( 1 、 b ) = 1 [ n ] b = 1 → b → n − 2 {\displaystyle H_{n}(a,b)=a[n]b=a\rightarrow b\rightarrow n-2} (例えば)1 [ 5 ] b = 1 → b → 3 {\displaystyle a[5]b=a\rightarrow b\rightarrow 3} [ 16 ]
例 以下は、最初の 7 つの (0 番目から 6 番目) のハイパーオペレーションのリストです ( 0⁰ は 1 と定義されます)。
特別なケース H n (0, b ) =
n = 0の場合、 b + 1b 、n = 1 の場合n = 2の場合、01、n = 3 かつb = 0の場合[ nb 3 ] n = 3 かつb > 0の場合、0 [ nb 3 ] 1. n > 3 かつb が偶数 (0 を含む)の場合 n > 3 かつb が奇数の場合、0 となる。H n (1, b ) =
b 、n = 2 の場合1. n ≥ 3 の場合 H n ( a , 0) =
n = 2の場合、01. n = 0 の場合、またはn ≥ 3 の場合 a 、n = 1 の場合H n ( a , 1) =
2、n = 0 の場合 n = 1の場合、 a + 1 となります。a 、n ≥ 2 の場合H n ( a , a ) =
H n+1 ( a , 2)、 n ≥ 1 の場合 H n ( a , −1) = [ nb 2 ]
n = 0 の場合、またはn ≥ 4 の場合、0 となります。n = 1 の場合、a − 1 − a 、n = 2 の場合 1 / a 、 n = 3 のH n (2, 2) =
3、n = 0 の場合 4、n ≥ 1 の場合、再帰的に容易に証明できる。
歴史 ハイパー演算に関する初期の議論の一つは、1914年のアルバート・ベネットによるもので、彼は可換ハイパー演算 の理論の一部を発展させた(下記の§ 可換ハイパー演算を 参照)。約12年後、ヴィルヘルム・アッカーマンは 関数を定義した。ϕ ( 1 、 b 、 n ) {\displaystyle \phi (a,b,n)} これは、ハイパーオペレーションシーケンスにいくらか似ている。
1947 年の論文で、ルーベン・グッドスタインは現在 ハイパー演算 と呼ばれる特定の演算シーケンスを導入し、指数を超える拡張演算に対してギリシャ語のテトレーション 、ペンターションなどを提案しました (これらはインデックス 4、5 などに対応するため)。3 つの引数関数として、たとえば、G ( n 、 1 、 b ) = H n ( 1 、 b ) {\displaystyle G(n,a,b)=H_{n}(a,b)} ハイパーオペレーションシーケンス全体は、元のアッカーマン関数の変形であることがわかる。 ϕ ( 1 、 b 、 n ) {\displaystyle \phi (a,b,n)} —再帰的だが 原始的な再帰的 ではない— Goodstein によって修正され、原始的な後継関数を算術の他の 3 つの基本演算 ( 加算 、乗算 、べき乗 )とともに組み込み、べき乗を超えてこれらのよりシームレスな拡張を行うようにしました。
オリジナルの3引数アッカーマン関数 ϕ {\displaystyle \phi } グッドスタイン版と同じ再帰規則(つまり、ハイパーオペレーションシーケンス)を使用するが、2つの点で異なる。まず、ϕ ( 1 、 b 、 n ) {\displaystyle \phi (a,b,n)} 加算 ( n = 0)から始まる演算のシーケンスを定義し、後継関数 、乗算 ( n = 1)、べき乗 ( n = 2) などではなく、次の演算のシーケンスを定義します。次に、初期条件は、ϕ {\displaystyle \phi } 結果としてϕ ( 1 、 b 、 3 ) = G ( 4 、 1 、 b + 1 ) = 1 [ 4 ] ( b + 1 ) {\displaystyle \phi (a,b,3)=G(4,a,b+1)=a[4](b+1)} したがって、指数演算を超えるハイパー演算とは異なります。前の式におけるb + 1の意義は、ϕ ( 1 、 b 、 3 ) {\displaystyle \phi (a,b,3)} =1 1 ⋅ ⋅ ⋅ 1 {\displaystyle a^{a^{\cdot ^{\cdot ^{\cdot ^{a}}}}}} ここで、b は 演算子 (べき乗)の数を数えるものであり、のbのように オペランド ("a")の数を数えるものではありません。1 [ 4 ] b {\displaystyle a[4]b} より高次の演算についても同様です。(詳細はアッカーマン関数に関する記事を参照してください。)
表記法 これは、ハイパー演算に使用されてきた表記法の一覧です。
0から始まるバリアント 1984年、CW ClenshawとFWJ Olverは、コンピュータの浮動小数点 オーバーフローを防ぐためにハイパー演算を使用する議論を開始しました。 それ以来、他の多くの著者が、浮動小数点 表現へのハイパー演算の適用に再び関心を寄せています。( H n ( a , b )はすべてb = -1で定義されているため。)Clenshawらは、 テトレーション について議論する際に、初期条件を仮定しました。F n ( 1 、 0 ) = 0 {\displaystyle F_{n}(a,0)=0} これにより、さらに別のハイパーオペレーション階層が構築されます。前のバリアントと同様に、4番目のオペレーションはテトレーション と非常によく似ていますが、1つずれています。
可換ハイパー演算 可換ハイパー演算は、アルバート・ベネットによって1914年には既に検討されており 、これはおそらくハイパー演算シーケンスに関する最も初期の記述である。可換ハイパー演算は再帰規則によって定義される。
F n + 1 ( 1 、 b ) = exp ( F n ( ln ( 1 ) 、 ln ( b ) ) ) {\displaystyle F_{n+1}(a,b)=\exp(F_{n}(\ln(a),\ln(b)))} これはa とbに関して対称であるため、すべての超演算は可換です。この数列には べき乗が 含まれていないため、超演算階層を形成しません。
ハイパー演算シーケンスに基づく記数法 RL Goodstein 、ハイパー演算子のシーケンスを使用して、非負整数の記数法を作成しました。レベルk および基数b における整数nのいわゆる 完全な遺伝的表現は 、最初のk 個の ハイパー演算子のみを使用し、数字として 0、1、...、b − 1 と基数b 自体のみを使用して、次のように表現できます。
0 ≤ n ≤ b − 1 の場合、n は対応する数字で単純に表されます。 n > b − 1の場合、 n の表現は再帰的に求められ、まずn を 次の形式で表現します。b [ k ] x k [ k − 1] x k − 1 [ k - 2] ... [2] x 2 [1] x 1 ここで、x k 、 ...、x 1 は、次の条件を満たす最大の整数です。 b [ k ] x k ≤ n b [ k ] x k [ k − 1] x k − 1 ≤ n ... b [ k ] x k [ k − 1] x k − 1 [ k - 2] ... [2] x 2 [1] x 1 ≤ n b − 1を超えるx i はすべて同じ方法で再表現され、この手順を繰り返して、結果として得られる形式が数字 0、1、...、b − 1 と基数b だけを含むまで続けます。不要な括弧は、上位レベルの演算子に評価順序でより高い優先順位を与えることで回避できます。したがって、
レベル 1 表現は b [1] X の形式であり、X もこの形式です。 レベル 2 表現は b [2] X [1] Y の形式であり、X 、Y もこの形式です。 レベル 3 表現は b [3] X [2] Y [1] Z の形式であり、X 、Y 、Z もこの形式です。 レベル 4 表現は、b [4] X [3] Y [2] Z [1] W の形式であり、X 、Y 、Z 、W もこの形式です。 等々。
このタイプの基数bの 遺伝的 表現では、式の中に基数自体と、集合 {0, 1, ..., b − 1} からの「数字」が現れます。これは、基数b で書き出された通常の 基数 2 表現と比較されます。たとえば、通常の基数 2 表記では、6 = (110) 2 = 2 [3] 2 [2] 1 [1] 2 [3] 1 [2] 1 [1] 2 [3] 0 [2] 0 ですが、レベル 3 の基数 2 遺伝的表現は 6 = 2 [3] (2 [3] 1 [2] 1 [1] 0) [2] 1 [1] (2 [3] 1 [2] 1 [1] 0) です。遺伝的表現は、[1] 0、[2] 1、[3] 1、[4] 1 などのインスタンスを省略することで省略できます。例えば、上記のレベル3の2進数表現6は2 [3] 2 [1] 2と略記されます。
例:レベル1、2、3、4、5における、266 という数の固有の2進数表現は以下のとおりです。
レベル 1: 266 = 2 [1] 2 [1] 2 [1] ... [1] 2 (2 が 133 回) レベル2: 266 = 2 [2] (2 [2] (2 [2] (2 [2] 2 [2] 2 [2] 2 [2] 2 [1] 1)) [1] 1) レベル3: 266 = 2 [3] 2 [3] (2 [1] 1) [1] 2 [3] (2 [1] 1) [1] 2 レベル4: 266 = 2 [4] (2 [1] 1) [3] 2 [1] 2 [4] 2 [2] 2 [1] 2 レベル 5: 266 = 2 [5] 2 [4] 2 [1] 2 [5] 2 [2] 2 [1] 2
計算 ハイパーオペレーションシーケンスの定義は、自然に項書き換えシステム(TRS) に移行できます。
定義サブ1.1に基づくTRS ハイパーオペレーションシーケンスの基本的な定義は、還元ルールに対応している。
(r1) H ( 0 、 1 、 b ) → S ( b ) (r2) H ( S ( 0 ) 、 1 、 0 ) → 1 (r3) H ( S ( S ( 0 ) ) 、 1 、 0 ) → 0 (r4) H ( S ( S ( S ( n ) ) ) 、 1 、 0 ) → S ( 0 ) (r5) H ( S ( n ) 、 1 、 S ( b ) ) → H ( n 、 1 、 H ( S ( n ) 、 1 、 b ) ) {\displaystyle {\begin{array}{lll}{\text{(r1)}}&H(0,a,b)&\rightarrow &S(b)\\{\text{(r2)}}&H(S(0),a,0)&\rightarrow &a\\{\text{(r3)}}&H(S(S(0)),a,0)&\rightarrow &0\\{\text{(r4)}}&H(S(S(S(n))),a,0)&\rightarrow &S(0)\\{\text{(r5)}}&H(S(n),a,S(b))&\rightarrow &H(n,a,H(S(n),a,b))\end{array}}} 計算するH n ( 1 、 b ) {\displaystyle H_{n}(a,b)} スタック を使用することができ、スタックには最初は次の要素が含まれています。⟨ n 、 1 、 b ⟩ {\displaystyle \langle n,a,b\rangle } 。
そして、不可能になるまで繰り返し、3 つの要素がルールに従って取り出され、置き換えられます[ nb 5 ]
(r1) 0 、 1 、 b → ( b + 1 ) (r2) 1 、 1 、 0 → 1 (r3) 2 、 1 、 0 → 0 (r4) ( n + 3 ) 、 1 、 0 → 1 (r5) ( n + 1 ) 、 1 、 ( b + 1 ) → n 、 1 、 ( n + 1 ) 、 1 、 b {\displaystyle {\begin{array}{lllllllll}{\text{(r1)}}&0&,&a&,&b&\rightarrow &(b+1)\\{\text{(r2)}}&1&,&a&,&0&\rightarrow &a\\{\text{(r3)}}&2&,&a&,&0&\rightarrow &0\\{\text{(r4)}}&(n+3)&,&a&,&0&\rightarrow &1\\{\text{(r5)}}&(n+1)&,&a&,&(b+1)&\rightarrow &n&,&a&,&(n+1)&,&a&,&b\end{array}}} 概略的に、⟨ n 、 1 、 b ⟩ {\displaystyle \langle n,a,b\rangle } :
スタック長が 1 でない間 { 3 つの要素 を POP し 、ルール r1、r2、r3、r4、r5 に従って 1 個または 5 個の要素をPUSH します。 }例
計算するH 2 ( 2 、 2 ) → * 4 {\displaystyle H_{2}(2,2)\rightarrow _{*}4} [
還元シーケンスは[ nb 5 ] [ nb 6 ]です
スタックを使用して実装する場合、入力時に⟨ 2 、 2 、 2 ⟩ {\displaystyle \langle 2,2,2\rangle }
定義サブ1.2に基づくTRS 反復を用いた定義は、異なる一連の削減規則につながる。
(r6) H ( S ( 0 ) 、 0 、 1 、 b ) → S ( b ) (r7) H ( S ( 0 ) 、 S ( 0 ) 、 1 、 0 ) → 1 (r8) H ( S ( 0 ) 、 S ( S ( 0 ) ) 、 1 、 0 ) → 0 (r9) H ( S ( 0 ) 、 S ( S ( S ( n ) ) ) 、 1 、 0 ) → S ( 0 ) (r10) H ( S ( 0 ) 、 S ( n ) 、 1 、 S ( b ) ) → H ( S ( b ) 、 n 、 1 、 H ( S ( 0 ) 、 S ( n ) 、 1 、 0 ) ) (r11) H ( S ( S ( x ) ) 、 n 、 1 、 b ) → H ( S ( 0 ) 、 n 、 1 、 H ( S ( x ) 、 n 、 1 、 b ) ) {\displaystyle {\begin{array}{lll}{\text{(r6)}}&H(S(0),0,a,b)&\rightarrow &S(b)\\{\text{(r7)}}&H(S(0),S(0),a,0)&\rightarrow &a\\{\text{(r8)}}&H(S(0),S(S(0)),a,0)&\rightarrow &0\\{\text{(r9)}}&H(S(0),S(S(S(n))),a,0)&\rightarrow &S(0)\\{\text{(r10)}}&H(S(0),S(n),a,S(b))&\rightarrow &H(S(b),n,a,H(S(0),S(n),a,0))\\{\text{(r11)}}&H(S(S(x)),n,a,b)&\rightarrow &H(S(0),n,a,H(S(x),n,a,b))\end{array}}} 反復は結合法則を満たす ため、ルール r11 の代わりに次のように定義できます。
(r12) H ( S ( S ( x ) ) 、 n 、 1 、 b ) → H ( S ( x ) 、 n 、 1 、 H ( S ( 0 ) 、 n 、 1 、 b ) ) {\displaystyle {\begin{array}{lll}{\text{(r12)}}&H(S(S(x)),n,a,b)&\rightarrow &H(S(x),n,a,H(S(0),n,a,b))\end{array}}} 前のセクションと同様に、H n ( 1 、 b ) = H n 1 ( 1 、 b ) {\displaystyle H_{n}(a,b)=H_{n}^{1}(a,b)} スタックを使用して実装できます。
最初はスタックには4つの要素が含まれています⟨ 1 、 n 、 1 、 b ⟩ {\displaystyle \langle 1,n,a,b\rangle } 。
そして終了まで、4 つの要素がルールに従って取り出され、置き換えられます[ nb 5 ]
(r6) 1 、 0 、 1 、 b → ( b + 1 ) (r7) 1 、 1 、 1 、 0 → 1 (r8) 1 、 2 、 1 、 0 → 0 (r9) 1 、 ( n + 3 ) 、 1 、 0 → 1 (r10) 1 、 ( n + 1 ) 、 1 、 ( b + 1 ) → ( b + 1 ) 、 n 、 1 、 1 、 ( n + 1 ) 、 1 、 0 (r11) ( x + 2 ) 、 n 、 1 、 b → 1 、 n 、 1 、 ( x + 1 ) 、 n 、 1 、 b {\displaystyle {\begin{array}{lllllllll}{\text{(r6)}}&1&,0&,a&,b&\rightarrow &(b+1)\\{\text{(r7)}}&1&,1&,a&,0&\rightarrow &a\\{\text{(r8)}}&1&,2&,a&,0&\rightarrow &0\\{\text{(r9)}}&1&,(n+3)&,a&,0&\rightarrow &1\\{\text{(r10)}}&1&,(n+1)&,a&,(b+1)&\rightarrow &(b+1)&,n&,a&,1&,(n+1)&,a&,0\\{\text{(r11)}}&(x+2)&,n&,a&,b&\rightarrow &1&,n&,a&,(x+1)&,n&,a&,b\end{array}}} 概略的に、⟨ 1 、 n 、 1 、 b ⟩ {\displaystyle \langle 1,n,a,b\rangle } :
スタック長が 1 でない間 { 4 つの要素 を POP し 、ルール r6、r7、r8、r9、r10、r11 に従って 1 個または 7 個の要素を PUSH します。 }例
計算するH 3 ( 0 、 3 ) → * 0 {\displaystyle H_{3}(0,3)\rightarrow _{*}0} 。
入力時⟨ 1 、 3 、 0 、 3 ⟩ {\displaystyle \langle 1,3,0,3\rangle } 連続するスタック構成は
1 、 3 、 0 、 3 _ → r 10 3 、 2 、 0 、 1 、 3 、 0 、 0 _ → r 9 3 、 2 、 0 、 1 _ → r 11 1 、 2 、 0 、 2 、 2 、 0 、 1 _ → r 11 1 、 2 、 0 、 1 、 2 、 0 、 1 、 2 、 0 、 1 _ → r 10 1 、 2 、 0 、 1 、 2 、 0 、 1 、 1 、 0 、 1 、 2 、 0 、 0 _ → r 8 1 、 2 、 0 、 1 、 2 、 0 、 1 、 1 、 0 、 0 _ → r 7 1 、 2 、 0 、 1 、 2 、 0 、 0 _ → r 8 1 、 2 、 0 、 0 _ → r 8 0. {\displaystyle {\begin{aligned}&{\underline {1,3,0,3}}\rightarrow _{r10}3,2,0,{\underline {1,3,0,0}}\rightarrow _{r9}{\underline {3,2,0,1}}\rightarrow _{r11}1,2,0,{\underline {2,2,0,1}}\rightarrow _{r11}1,2,0,1,2,0,{\underline {1,2,0,1}}\\&\rightarrow _{r10}1,2,0,1,2,0,1,1,0,{\underline {1,2,0,0}}\rightarrow _{r8}1,2,0,1,2,0,{\underline {1,1,0,0}}\rightarrow _{r7}1,2,0,{\underline {1,2,0,0}}\rightarrow _{r8}{\underline {1,2,0,0}}\rightarrow _{r8}0.\end{aligned}}} 対応する等式は次のとおりです。
H 3 ( 0 、 3 ) = H 2 3 ( 0 、 H 3 ( 0 、 0 ) ) = H 2 3 ( 0 、 1 ) = H 2 ( 0 、 H 2 2 ( 0 、 1 ) ) = H 2 ( 0 、 H 2 ( 0 、 H 2 ( 0 、 1 ) ) = H 2 ( 0 、 H 2 ( 0 、 H 1 ( 0 、 H 2 ( 0 、 0 ) ) ) ) = H 2 ( 0 、 H 2 ( 0 、 H 1 ( 0 、 0 ) ) ) = H 2 ( 0 、 H 2 ( 0 、 0 ) ) = H 2 ( 0 、 0 ) = 0. {\displaystyle {\begin{aligned}&H_{3}(0,3)=H_{2}^{3}(0,H_{3}(0,0))=H_{2}^{3}(0,1)=H_{2}(0,H_{2}^{2}(0,1))=H_{2}(0,H_{2}(0,H_{2}(0,1))\\&=H_{2}(0,H_{2}(0,H_{1}(0,H_{2}(0,0))))=H_{2}(0,H_{2}(0,H_{1}(0,0)))=H_{2}(0,H_{2}(0,0))=H_{2}(0,0)=0.\end{aligned}}} 削減ルール r11 がルール r12 に置き換えられると、スタックは次のように変換されます。
(r12) ( x + 2 ) 、 n 、 1 、 b → ( x + 1 ) 、 n 、 1 、 1 、 n 、 1 、 b {\displaystyle {\begin{array}{lllllllll}{\text{(r12)}}&(x+2)&,n&,a&,b&\rightarrow &(x+1)&,n&,a&,1&,n&,a&,b\end{array}}} 続いて、スタック構成は次のようになります。
1 、 3 、 0 、 3 _ → r 10 3 、 2 、 0 、 1 、 3 、 0 、 0 _ → r 9 3 、 2 、 0 、 1 _ → r 12 2 、 2 、 0 、 1 、 2 、 0 、 1 _ → r 10 2 、 2 、 0 、 1 、 1 、 0 、 1 、 2 、 0 、 0 _ → r 8 2 、 2 、 0 、 1 、 1 、 0 、 0 _ → r 7 2 、 2 、 0 、 0 _ → r 12 1 、 2 、 0 、 1 、 2 、 0 、 0 _ → r 8 1 、 2 、 0 、 0 _ → r 8 0 {\displaystyle {\begin{aligned}&{\underline {1,3,0,3}}\rightarrow _{r10}3,2,0,{\underline {1,3,0,0}}\rightarrow _{r9}{\underline {3,2,0,1}}\rightarrow _{r12}2,2,0,{\underline {1,2,0,1}}\rightarrow _{r10}2,2,0,1,1,0,{\underline {1,2,0,0}}\\&\rightarrow _{r8}2,2,0,{\underline {1,1,0,0}}\rightarrow _{r7}{\underline {2,2,0,0}}\rightarrow _{r12}1,2,0,{\underline {1,2,0,0}}\rightarrow _{r8}{\underline {1,2,0,0}}\rightarrow _{r8}0\end{aligned}}} 対応する等式は次のとおりです。
H 3 ( 0 、 3 ) = H 2 3 ( 0 、 H 3 ( 0 、 0 ) ) = H 2 3 ( 0 、 1 ) = H 2 2 ( 0 、 H 2 ( 0 、 1 ) ) = H 2 2 ( 0 、 H 1 ( 0 、 H 2 ( 0 、 0 ) ) ) = H 2 2 ( 0 、 H 1 ( 0 、 0 ) ) = H 2 2 ( 0 、 0 ) = H 2 ( 0 、 H 2 ( 0 、 0 ) ) = H 2 ( 0 、 0 ) = 0 {\displaystyle {\begin{aligned}&H_{3}(0,3)=H_{2}^{3}(0,H_{3}(0,0))=H_{2}^{3}(0,1)=H_{2}^{2}(0,H_{2}(0,1))=H_{2}^{2}(0,H_{1}(0,H_{2}(0,0)))\\&=H_{2}^{2}(0,H_{1}(0,0))=H_{2}^{2}(0,0)=H_{2}(0,H_{2}(0,0))=H_{2}(0,0)=0\end{aligned}}} 備考
H 3 ( 0 、 3 ) = 0 {\displaystyle H_{3}(0,3)=0} これは特殊なケースです。上記の「特殊なケース」の 項 を参照してください。[ 注3 ] 計算H n ( 1 、 b ) {\displaystyle H_{n}(a,b)} ルールによれば、{r6 - r10, r11} は再帰性が非常に高い。原因は反復処理の実行順序にある。H n ( 1 、 b ) = H ( 1 、 H n − 1 ( 1 、 b ) ) {\displaystyle H^{n}(a,b)=H(a,H^{n-1}(a,b))} 。 最初H {\displaystyle H} 全体のシーケンスが展開された後にのみ消えます。たとえば、H 4 ( 2 、 4 ) {\displaystyle H_{4}(2,4)} 2863311767ステップで65536に収束し、再帰の最大深度[ nb 7 ] は65534です。 ルール{r6 - r10, r12}に従った計算は、その点においてより効率的である。反復の実装H n ( 1 、 b ) {\displaystyle H^{n}(a,b)} としてH n − 1 ( 1 、 H ( 1 、 b ) ) {\displaystyle H^{n-1}(a,H(a,b))} は 、手続き H の繰り返し実行を模倣します。[ nb 8 ] 再帰の深さ (n+1) は、ループのネストと一致します。Meyerと Ritchie (1967) はこの対応関係を形式化しました。H 4 ( 2 、 4 ) {\displaystyle H_{4}(2,4)} ルール{r6-r10, r12}によれば、65536に収束するには2863311767ステップが必要ですが、ハイパー演算シーケンスの5番目の演算子がテトレーションであるため、再帰の最大深度は5のみです。 上記の考察は再帰の深さのみに関するものです。どちらの反復方法でも、同じ数の削減ステップが発生し、同じルールが適用されます(ルール r11 と r12 が「同じ」とみなされる場合)。例が示すように、削減はH 3 ( 0 、 3 ) {\displaystyle H_{3}(0,3)} 9ステップで収束します:1 × r7、3 × r8、1 × r9、2 × r10、2 × r11/r12。反復法は、還元規則が適用される順序のみに影響します。
注記 ↑ ハイパー演算シーケンス に類似したシーケンスは、歴史的に、アッカーマン関数 (3 引数)、アッカーマン階層 、グジェゴルチク階層 (より一般的)、グッドスタイン版アッカーマン関数 、 n 次演算 ] 、 x と y の z 重反復指数化[ 、矢印 演算 、、ハイパー n [ 、。 1 2 3 x = a [ n ](−1)とする。再帰式により、 a [ n ]0 = a [ n − 1]( a [ n ](−1)) ⇒ 1 = a [ n − 1] x となる。解の 1 つはx = 0である。これは、 n ≥ 4の場合、定義によりa [ n − 1]0 = 1 となるためである。この解は、すべての a > 1、 b > 0 に対してa [ n − 1] b > 1 となるため一意である(再帰による証明)。 1 2 3 詳細については、「ゼロのべき乗」 または「ゼロのゼロ乗」を 参照してください。 ↑ 順序加算は可換ではありません。詳しくは順序算術を参照してください。 1 2 3 これは、最も左から最も内側の(1ステップ)戦略 を実行します。 ↑ 各ステップ で下線部のredex が書き換えられます。 ↑ 再帰の最大深度とは、プロシージャの最も深い呼び出し中に存在するプロシージャの活性化レベルの数を指します。 [ 33 ] ↑ n 回 ループして H
Bibliography Bennett, Albert A. (December 1915). "Note on an Operation of the Third Grade". Annals of Mathematics . Second Series. 17 (2): 74– 75. doi :10.2307/2007124. JSTOR 2007124. Bezem, Marc; Klop, Jan Willem; De Vrijer, Roel (2003). "First-order term rewriting systems". Term Rewriting Systems by "Terese" . Cambridge University Press. pp. 38– 39. ISBN 0-521-39115-6 . Campagnola, Manuel Lameiras; Moore, Cristopher ; Félix Costa, José (December 2002). "Transfinite Ordinals in Recursive Number Theory". Journal of Complexity . 18 (4): 977– 1000. doi :10.1006/jcom.2002.0655 . Clenshaw, C.W.; Olver, F.W.J. (April 1984). "Beyond floating point". Journal of the ACM . 31 (2): 319– 328. doi :10.1145/62.322429 . S2CID 5132225. Cornelius, B.J.; Kirby, G.H. (1975). "Depth of recursion and the ackermann function". BIT Numerical Mathematics . 15 (2): 144– 150. doi :10.1007/BF01932687. S2CID 120532578. Cowles, J.; Bailey, T. (30 September 1988). "Several Versions of Ackermann's Function". Dept. of Computer Science, University of Wyoming, Laramie, WY. Retrieved 29 August 2021 . Doner, John; Tarski, Alfred (1969). "An extended arithmetic of ordinal numbers". Fundamenta Mathematicae . 65 : 95– 127. doi :10.4064/fm-65-1-95-127 . Galidakis, I. N. (2003). "Mathematics". Archived from the original on 20 April 2009. Retrieved 17 April 2009 . Geisler, Daniel (2003). "What lies beyond exponentiation?". Retrieved 17 April 2009 . Goodstein, Reuben Louis (December 1947). "Transfinite Ordinals in Recursive Number Theory"(PDF) . Journal of Symbolic Logic . 12 (4): 123– 129. doi :10.2307/2266486. JSTOR 2266486. S2CID 1318943. Holmes, W. N. (March 1997). "Composite Arithmetic: Proposal for a New Standard". Computer . 30 (3): 65– 73. doi :10.1109/2.573666. Retrieved 21 April 2009 . Knuth, Donald Ervin (December 1976). "Mathematics and Computer Science: Coping with Finiteness" . Science . 194 (4271): 1235– 1242. Bibcode :1976Sci...194.1235K. doi :10.1126/science.194.4271.1235. PMID 17797067. S2CID 1690489. Retrieved 21 April 2009 . Littlewood, J. E. (July 1948). "Large Numbers". Mathematical Gazette . 32 (300): 163– 171. doi :10.2307/3609933. JSTOR 3609933. S2CID 250442130. Müller, Markus (1993). "Reihenalgebra"(PDF) . Archived from the original(PDF) on 2 December 2013. Retrieved 6 November 2021 . Munafo, Robert (1999a). "Versions of Ackermann's Function". Large Numbers at MROB . Retrieved 28 August 2021 . Munafo, Robert (1999b). "Inventing New Operators and Functions". Large Numbers at MROB . Retrieved 28 August 2021 . Nambiar, KK (1995). "アッカーマン関数と超限順序数" .Applied Mathematics Letters . 8 (6): 51–53 . doi : 10.1016/0893-9659(95)00084-4 . Pinkiewicz, T.; Holmes, N.; Jamil, T. (2000). 「有理数のための複合演算ユニットの設計」. IEEE Southeast Con 2000 論文集「新千年紀への準備」(カタログ番号 00CH37105) . IEEE 論文集. pp. 245–252 . doi : 10.1109/SECON.2000.845571 . ISBN 0-7803-6312-4 . S2CID 7738926 . Robbins, AJ (2005年11月)。「Home of Tetration」。2015年6月13日のオリジナルからアーカイブ済み。2009年4月17日 取得。 Romerio, GF (2008年1月21日). 「ハイパーオペレーション用語」 . Tetration Forum . 2009年 4月21日 取得 . Rubtsov, CA; Romerio, GF (2005年12月) 「アッカーマン関数と新しい算術演算」 。 2009年 4月17日 取得 。 タウンゼント、アダム(2016年5月12日)。「大きな数の名前」。Chalkdust magazine 。 ワイススタイン、エリック・W. (2003). CRC数学簡潔百科事典、第2版 . CRC Press. pp. 127–128 . ISBN 1-58488-347-2 。 マルク・ヴィルツ (1999)。「安全な再帰によるグジェゴルチク階層の特徴付け」(PDF) 。ベルン: Institut für Informatik und angewandte Mathematik。CiteSeerX 10.1.1.42.3374 。S2CID 117417812。 Zimmermann, R. (1997). "コンピュータ算術: 原理、アーキテクチャ、および VLSI 設計" (PDF) 。講義ノート、統合システム研究所、チューリッヒ工科大学。2013年 8 月 17 日にオリジナル(PDF)からアーカイブ済み。2009 年 4 月 17 日 に取得 。 ズウィリンガー、 ダニエル(2002)。CRC標準数表と公式、第31版 。CRC Press。p. 4。ISBN 1-58488-291-3 。