数学 において、クヌースの上向き矢印記法は、 ドナルド・クヌース が1976年に導入した非常に大きな 整数 を表す記法である。 [ 1 ]
1947年の論文[ 2 ] で、 RL Goodsteinは現在 ハイパー演算と 呼ばれる特定の演算シーケンスを導入しました。Goodsteinはまた、べき乗を超える拡張演算に対して、ギリシャ語の tetation 、pentationなどの名称を提案しました。このシーケンスは単項演算 (n = 0の後継関数 )から始まり、加算 (n = 1)、乗算 (n = 2) 、べき乗 (n = 3)、tetation (n = 4)など の二項演算へと続きます。ハイパー演算を表すために 様々な表記法 が用いられてきました。その1つがH n ( 1 、 b ) {\displaystyle H_{n}(a,b)} クヌースの上向き矢印表記↑ {\displaystyle \uparrow } もう一つの例はこれです。例えば:
一本の矢↑ {\displaystyle \uparrow } べき乗 (反復乗算)を表す2 ↑ 4 = H 3 ( 2 、 4 ) = 2 × ( 2 × ( 2 × 2 ) ) = 2 4 = 16 {\displaystyle 2\uparrow 4=H_{3}(2,4)=2\times (2\times (2\times 2))=2^{4}=16} 二重矢印↑ ↑ {\displaystyle \uparrow \uparrow } テトレーション (反復べき乗)を表す2 ↑ ↑ 4 = H 4 ( 2 、 4 ) = 2 ↑ ( 2 ↑ ( 2 ↑ 2 ) ) = 2 2 2 2 = 2 16 = 65 、 536 {\displaystyle 2\uparrow \uparrow 4=H_{4}(2,4)=2\uparrow (2\uparrow (2\uparrow 2))=2^{2^{2^{2}}}=2^{16}=65,536} トリプルアロー↑ ↑ ↑ {\displaystyle \uparrow \uparrow \uparrow } ペンテーション(反復テトラレーション)を表す2 ↑ ↑ ↑ 4 = H 5 ( 2 、 4 ) = 2 ↑ ↑ ( 2 ↑ ↑ ( 2 ↑ ↑ 2 ) ) = 2 ↑ ↑ ( 2 ↑ ↑ ( 2 ↑ 2 ) ) = 2 ↑ ↑ ( 2 ↑ ↑ 4 ) = 2 ↑ ( 2 ↑ ( 2 ↑ ⋯ ) ) ⏟ = 2 2 ⋯ 2 ⏟ 2 ↑ ↑ 4 コピー 2 65,536個の2 {\displaystyle {\begin{aligned}2\uparrow \uparrow \uparrow 4&=H_{5}(2,4)\\&=2\uparrow \uparrow (2\uparrow \uparrow (2\uparrow \uparrow 2))\\&=2\uparrow \uparrow (2\uparrow \uparrow (2\uparrow 2))\\&=2\uparrow \uparrow (2\uparrow \uparrow 4)\\&=\underbrace {2\uparrow (2\uparrow (2\uparrow \cdots ))} \;=\;\underbrace {\;2^{2^{\cdots ^{2}}}} \\&\;\;\;\;\;2\uparrow \uparrow 4{\text{ copies of }}2\;\;\;\;\;{\text{65,536 2's}}\\\end{aligned}}} 上向き矢印表記の一般的な定義は次のとおりです(1 ≥ 0 、 n ≥ 1 、 b ≥ 0 {\displaystyle a\geq 0,n\geq 1,b\geq 0} ): 1 ↑ n b = H n + 2 ( 1 、 b ) = 1 [ n + 2 ] b 。 {\displaystyle a\uparrow ^{n}b=H_{n+2}(a,b)=a[n+2]b.} ここ、↑ n {\displaystyle \uparrow ^{n}} n 個の矢印を表すので、例えば 2 ↑ ↑ ↑ ↑ 3 = 2 ↑ 4 3 、 {\displaystyle 2\uparrow \uparrow \uparrow \uparrow 3=2\uparrow ^{4}3,} また、右辺の式で使用されている角括弧は、超演算を表す別の表記法です。
導入 ハイパー演算は、 加算 と乗算の 算術 演算を以下のように自然に拡張します。
自然数 による加算は、反復的な増分として定義される。
H 1 ( 1 、 b ) = 1 + b = 1 + 1 + 1 + ⋯ + 1 ⏟ b コピー 1 {\displaystyle {\begin{matrix}H_{1}(a,b)=a+b=&a+\underbrace {1+1+\dots +1} \\&b{\mbox{ copies of }}1\end{matrix}}} 自然数による乗算は、反復加算として定義される。
H 2 ( 1 、 b ) = 1 × b = 1 + 1 + ⋯ + 1 ⏟ b コピー 1 {\displaystyle {\begin{matrix}H_{2}(a,b)=a\times b=&\underbrace {a+a+\dots +a} \\&b{\mbox{ copies of }}a\end{matrix}}} 例えば、
4 × 3 = 4 + 4 + 4 ⏟ = 12 3 コピー 4 {\displaystyle {\begin{matrix}4\times 3&=&\underbrace {4+4+4} &=&12\\&&3{\mbox{ copies of }}4\end{matrix}}} 自然数のべき乗 b {\displaystyle b} これは反復乗算として定義され、クヌースはこれを単一の上向き矢印で表した。
1 ↑ b = H 3 ( 1 、 b ) = 1 b = 1 × 1 × ⋯ × 1 ⏟ b コピー 1 {\displaystyle {\begin{matrix}a\uparrow b=H_{3}(a,b)=a^{b}=&\underbrace {a\times a\times \dots \times a} \\&b{\mbox{ copies of }}a\end{matrix}}} 例えば、
4 ↑ 3 = 4 3 = 4 × 4 × 4 ⏟ = 64 3 コピー 4 {\displaystyle {\begin{matrix}4\uparrow 3=4^{3}=&\underbrace {4\times 4\times 4} &=&64\\&3{\mbox{ copies of }}4\end{matrix}}} テトレーション は反復べき乗として定義され、クヌースはこれを「二重矢印」で表した。
1 ↑ ↑ b = H 4 ( 1 、 b ) = 1 1 。 。 。 1 ⏟ = 1 ↑ ( 1 ↑ ( ⋯ ↑ 1 ) ) ⏟ b コピー 1 b コピー 1 {\displaystyle {\begin{matrix}a\uparrow \uparrow b=H_{4}(a,b)=&\underbrace {a^{a^{{}^{.\,^{.\,^{.\,^{a}}}}}}} &=&\underbrace {a\uparrow (a\uparrow (\cdots \uparrow a))} \\&b{\mbox{ copies of }}a&&b{\mbox{ copies of }}a\end{matrix}}} 例えば、
4 ↑ ↑ 3 = 4 4 4 ⏟ = 4 ↑ ( 4 ↑ 4 ) ⏟ = 4 256 3 コピー 4 3 コピー 4 {\displaystyle {\begin{matrix}4\uparrow \uparrow 3=&\underbrace {4^{4^{4}}} &=&\underbrace {4\uparrow (4\uparrow 4)} &=&4^{256}&&\\&3{\mbox{ copies of }}4&&3{\mbox{ copies of }}4\end{matrix}}} 演算子は右結合性を 持つように定義されているため、式は右から左に評価されます。
この定義によれば、
3 ↑ ↑ 2 = 3 3 = 27 {\displaystyle 3\uparrow \uparrow 2=3^{3}=27} 3 ↑ ↑ 3 = 3 3 3 = 3 27 = 7 、 625 、 597 、 484 、 987 {\displaystyle 3\uparrow \uparrow 3=3^{3^{3}}=3^{27}=7,625,597,484,987} 3 ↑ ↑ 4 = 3 3 3 3 = 3 3 27 = 3 7625597484987 {\displaystyle 3\uparrow \uparrow 4=3^{3^{3^{3}}}=3^{3^{27}}=3^{7625597484987}} 3 ↑ ↑ 5 = 3 3 3 3 3 = 3 3 3 27 = 3 3 7625597484987 {\displaystyle 3\uparrow \uparrow 5=3^{3^{3^{3^{3}}}}=3^{3^{3^{27}}}=3^{3^{7625597484987}}} 等 これは既にかなり大きな数値につながりますが、ハイパー演算子のシーケンスはここで終わりません。反復テトラションとして定義されるペンテーションは、「三重矢印」で表されます。
1 ↑ ↑ ↑ b = H 5 ( 1 、 b ) = 1 ↑ ↑ ( 1 ↑ ↑ ( ⋯ ↑ ↑ 1 ) ) ⏟ b コピー 1 {\displaystyle {\begin{matrix}a\uparrow \uparrow \uparrow b=H_{5}(a,b)=&\underbrace {a_{}\uparrow \uparrow (a\uparrow \uparrow (\cdots \uparrow \uparrow a))} \\&b{\mbox{ copies of }}a\end{matrix}}} 反復ペンタテーションとして定義されるヘキセーションは、「四重矢印」で表されます。
1 ↑ ↑ ↑ ↑ b = H 6 ( 1 、 b ) = 1 ↑ ↑ ↑ ( 1 ↑ ↑ ↑ ( ⋯ ↑ ↑ ↑ 1 ) ) ⏟ b コピー 1 {\displaystyle {\begin{matrix}a\uparrow \uparrow \uparrow \uparrow b=H_{6}(a,b)=&\underbrace {a_{}\uparrow \uparrow \uparrow (a\uparrow \uparrow \uparrow (\cdots \uparrow \uparrow \uparrow a))} \\&b{\mbox{ copies of }}a\end{matrix}}} などなど。一般的なルールは、n {\displaystyle n} -矢印演算子は右結合の系列に展開されます (n − 1 {\displaystyle n-1} )-矢印演算子。記号的には、
1 ↑ ↑ ⋯ ↑ ⏟ n b = 1 ↑ ⋯ ↑ ⏟ n − 1 ( 1 ↑ ⋯ ↑ ⏟ n − 1 ( ⋯ ↑ ⋯ ↑ ⏟ n − 1 1 ) ) ⏟ b コピー 1 {\displaystyle {\begin{matrix}a\ \underbrace {\uparrow _{}\uparrow \!\!\cdots \!\!\uparrow } _{n}\ b=\underbrace {a\ \underbrace {\uparrow \!\!\cdots \!\!\uparrow } _{n-1}\ (a\ \underbrace {\uparrow _{}\!\!\cdots \!\!\uparrow } _{n-1}\ (\cdots \ \underbrace {\uparrow _{}\!\!\cdots \!\!\uparrow } _{n-1}\ a))} _{b{\text{ copies of }}a}\end{matrix}}} 例:
3 ↑ ↑ ↑ 2 = 3 ↑ ↑ 3 = 3 3 3 = 3 27 = 7 、 625 、 597 、 484 、 987 {\displaystyle 3\uparrow \uparrow \uparrow 2=3\uparrow \uparrow 3=3^{3^{3}}=3^{27}=7,625,597,484,987} 3 ↑ ↑ ↑ 3 = 3 ↑ ↑ ( 3 ↑ ↑ 3 ) = 3 ↑ ↑ ( 3 ↑ 3 ↑ 3 ) = 3 ↑ 3 ↑ ⋯ ↑ 3 ⏟ 3 ↑ 3 ↑ 3 コピー 3 = 3 ↑ 3 ↑ ⋯ ↑ 3 ⏟ 7,625,597,484,987 部 3 = 3 3 3 3 ⋅ ⋅ ⋅ ⋅ 3 ⏟ 7,625,597,484,987 部 3 {\displaystyle {\begin{aligned}3\uparrow \uparrow \uparrow 3&=3\uparrow \uparrow (3\uparrow \uparrow 3)\\&=3\uparrow \uparrow (3\uparrow 3\uparrow 3)\\&={\begin{matrix}\underbrace {3\uparrow 3\uparrow \cdots \uparrow 3} \\3\uparrow 3\uparrow 3{\mbox{ copies of }}3\end{matrix}}\\&={\begin{matrix}\underbrace {3\uparrow 3\uparrow \cdots \uparrow 3} \\{\mbox{7,625,597,484,987 copies of 3}}\end{matrix}}\\&={\begin{matrix}\underbrace {3^{3^{3^{3^{\cdot ^{\cdot ^{\cdot ^{\cdot ^{3}}}}}}}}} \\{\mbox{7,625,597,484,987 copies of 3}}\end{matrix}}\end{aligned}}}
意味 ハイパー演算 を参照せずに、上向き矢印演算子は形式的に次のように定義できます。
1 ↑ n b = { 1 b 、 もし n = 1 ; 1 、 もし n > 1 そして b = 0 ; 1 ↑ n − 1 ( 1 ↑ n ( b − 1 ) ) 、 さもないと {\displaystyle a\uparrow ^{n}b={\begin{cases}a^{b},&{\text{if }}n=1;\\1,&{\text{if }}n>1{\text{ and }}b=0;\\a\uparrow ^{n-1}(a\uparrow ^{n}(b-1)),&{\text{otherwise }}\end{cases}}} すべての整数に対して1 、 b 、 n {\displaystyle a,b,n} と1 ≥ 0 、 n ≥ 1 、 b ≥ 0 {\displaystyle a\geq 0,n\geq 1,b\geq 0} [注 1 ]
この定義では指数法を使用しています ( 1 ↑ 1 b = 1 ↑ b = 1 b ) {\displaystyle (a\uparrow ^{1}b=a\uparrow b=a^{b})} 基本ケースとして、そしてテトラレーション ( 1 ↑ 2 b = 1 ↑ ↑ b ) {\displaystyle (a\uparrow ^{2}b=a\uparrow \uparrow b)} 繰り返しべき乗演算として。これは、加算 、加算 、乗算と いうより基本的な 3 つの演算を省略した点を除けば、ハイパー演算シーケンス と同等です。
代わりに乗算 を選択することもできます( 1 ↑ 0 b = 1 × b ) {\displaystyle (a\uparrow ^{0}b=a\times b)} を基本ケースとして、そこから反復します。すると、べき乗は 繰り返し乗算になります。正式な定義は次のようになります。
1 ↑ n b = { 1 × b 、 もし n = 0 ; 1 、 もし n > 0 そして b = 0 ; 1 ↑ n − 1 ( 1 ↑ n ( b − 1 ) ) 、 さもないと {\displaystyle a\uparrow ^{n}b={\begin{cases}a\times b,&{\text{if }}n=0;\\1,&{\text{if }}n>0{\text{ and }}b=0;\\a\uparrow ^{n-1}(a\uparrow ^{n}(b-1)),&{\text{otherwise }}\end{cases}}} すべての整数に対して1 、 b 、 n {\displaystyle a,b,n} と1 ≥ 0 、 n ≥ 0 、 b ≥ 0 {\displaystyle a\geq 0,n\geq 0,b\geq 0} 。
ただし、クヌースは「nil矢印」を定義していないことに注意してください(↑ 0 {\displaystyle \uparrow ^{0}} ) 表記法を負のインデックス (n ≥ -2) に拡張すれば、インデックス付けの遅延を除いて、ハイパー演算シーケンス全体と一致するようにできる。
H n ( 1 、 b ) = 1 [ n ] b = 1 ↑ n − 2 b のために n ≥ 0. {\displaystyle H_{n}(a,b)=a[n]b=a\uparrow ^{n-2}b{\text{ for }}n\geq 0.} 上向き矢印の操作は右結合操作 です。つまり、1 ↑ b ↑ c {\displaystyle a\uparrow b\uparrow c} 理解されているのは1 ↑ ( b ↑ c ) {\displaystyle a\uparrow (b\uparrow c)} 、 の代わりに( 1 ↑ b ) ↑ c {\displaystyle (a\uparrow b)\uparrow c} 曖昧さが問題にならない場合は、括弧が省略されることがあります。
値の表
0↑ n bを計算する コンピューティング0 ↑ n b = H n + 2 ( 0 、 b ) = 0 [ n + 2 ] b {\displaystyle 0\uparrow ^{n}b=H_{n+2}(0,b)=0[n+2]b} 結果として
n = 0の場合、 0 [ nb 2 ] 1、n = 1 かつb = 0の場合[ nb 1 ] [ nb 3 ] n = 1 かつb > 0の場合、0 [ nb 1 ] [ nb 3 ] 1. n > 1 かつb が偶数 (0 を含む)の場合 n > 1 かつb が奇数の場合、0 となる。
2↑ n bを計算する コンピューティング2 ↑ n b {\displaystyle 2\uparrow ^{n}b} 無限表を用いて言い換えることができます。2 b {\displaystyle 2^{b}} 一番上の行に 2 を記入し、左の列に 2 を記入します。表の数値を求めるには、すぐ左の数値を取り、その数値に対応する位置を前の行で調べます。
表はアッカーマン関数の表 と同じだが、シフトが1つだけ異なる。n {\displaystyle n} そしてb {\displaystyle b} 、そしてすべての値に3を加える。
計算 3 ↑ n b 数字を配置します3 b {\displaystyle 3^{b}} 一番上の行に 3 を記入し、左の列に 3 を記入します。表の数値を求めるには、すぐ左にある数値を取り、その数値に対応する位置を前の行で調べます。
コンピューティング 4 ↑ n b 数字を配置します4 b {\displaystyle 4^{b}} 一番上の行に 4 を記入し、左の列に 4 を記入します。表の数値を求めるには、すぐ左にある数値を取り、その数値に対応する位置を前の行で調べます。
計算 10 ↑ n b 数字を配置します10 b {\displaystyle 10^{b}} 一番上の行に 10 という数字を入れ、左の列には 10 という数字を入れます。表の数字を求めるには、すぐ左にある数字を取り、その数字に対応する位置を前の行で探します。
2 ≤ b ≤ 9 の場合、数値の順序は次のようになります。10 ↑ n b {\displaystyle 10\uparrow ^{n}b} は、 n を 最上位数とする辞書式順序 であるため、これら 8 列の数値については、単純に行ごとの数値順序となります。3 ≤ b ≤ 99 の 97 列の数値についても同様であり、 n = 1から始めると、3 ≤ b ≤ 9,999,999,999 の場合でも同様です。
注記 1 2 3 詳細については、「ゼロのべき乗」を 参照してください。 ↑ クヌースは演算子を定義していないことに注意してください↑ 0 {\displaystyle \uparrow ^{0}} 。 1 2 詳細については、「ゼロのゼロ乗」を 参照してください。
参考文献 ↑ Knuth, Donald E. (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 . ↑ RL Goodstein (1947 年 12 月)「再帰的数論における超限順序数」 『記号論理学ジャーナル 』 12 (4): 123–129 . doi : 10.2307/2266486 . JSTOR 2266486 . S2CID 1318943 .