超运算序列 是数学 中一种二元运算 的序列 ,前三项 分别为加法 、乘法 、幂 ,一般来说,除了序列中第一项的加法运算之外,序列中每一项的运算都是重复的前一项的运算(例如乘法是重复的加法:
a
⋅
b
=
a
+
a
+
a
+
⋯
+
a
⏟
b
{\displaystyle a\cdot b=\underbrace {a+a+a+\cdots +a} _{b}}
,幂是重复的乘法:
a
b
=
a
⋅
a
⋅
a
⋅
…
⋅
a
⏟
b
{\displaystyle a^{b}=\underbrace {a\cdot a\cdot a\cdot \ldots \cdot a} _{b}}
)。这些运算通称为超运算 (或称为hyper运算符 )。序列中的第n 项称为超-n 运算 或第n 级的超运算 ,其符号为[n ] 。英文则由鲁宾·古德斯坦 命名,当n ≥4时,由n 的希腊语 前缀 加上后缀 -ation组成(例如超-4运算 称为tetration ,超-5运算 称为pentation )。[ 1] 当n ≥3 时,使用高德纳箭号表示法 可将超-n 运算的符号表示为(n -2)个箭头。
超运算可通过递归 进行定义,对于所有正整数 a ,正整数b 和正整数n :
a
[
1
]
b
=
a
+
b
,
for
n
>
1
,
a
[
n
]
b
=
a
[
n
−
1
]
(
a
[
n
−
1
]
(
a
[
n
−
1
]
⋯
(
a
[
n
−
1
]
(
a
[
n
−
1
]
a
⏟
b
)
)
⋯
)
)
{\displaystyle a[1]b=a+b,\ {\text{for}}\ n>1,\ a[n]b=\underbrace {a[n-1](a[n-1](a[n-1]\cdots (a[n-1](a[n-1]a} _{b}))\cdots ))}
除这一最常见的定义之外,超运算还有其他的变体。(见下文 )
1914年,阿尔伯特·贝内特(Albert Bennett)最早提出了超运算,他发展出了一套交换超运算(见下文 )的理论。[ 4] 12年之后,威廉·阿克曼 定义了函数
ϕ
(
a
,
b
,
n
)
{\displaystyle \phi (a,b,n)}
[ 5] ,和超运算序列已经有了某种程度上的相似。最早的使用三个自变量的阿克曼函数 使用了同样的递归法则,但有两点与现在的超运算不同。一是它定义了
n
=
0
{\displaystyle n=0}
时为加法、
n
=
1
{\displaystyle n=1}
时为乘法、
n
=
2
{\displaystyle n=2}
时为幂运算,二是由其对
ϕ
{\displaystyle \phi }
初始条件的定义能得到
ϕ
(
a
,
b
,
3
)
=
a
[
4
]
(
b
+
1
)
{\displaystyle \phi (a,b,3)=a[4](b+1)}
,最后的运算结果与超运算不同。[ 6] [ 7] [ 8]
1947年,鲁宾·古德斯坦 [ 1] 提出现在所使用的超运算序列,只是那时他使用记号
G
(
n
,
a
,
b
)
{\displaystyle G(n,a,b)}
来表示,而非今天的
a
[
n
]
b
{\displaystyle a[n]b}
。在1947年的论文中,古德斯坦还引进了幂运算之后超运算的英文名称,即tetration、pentation、hexation等。
下表列出了曾用来表示超运算的各种符号表示法:
More information , 使用(对于 ...
名称
符号表示
注解
高德纳箭号表示法
a
↑
n
−
2
b
{\displaystyle a\uparrow ^{n-2}b}
高德纳 使用(对于
n
≥
3
{\displaystyle n\geq 3}
)[ 9] ,也在相关参考书目中提及[ 10] [ 11]
古德斯坦表示法
G
(
n
,
a
,
b
)
{\displaystyle G(n,a,b)}
鲁宾·古德斯坦 使用[ 1]
初始阿克曼函数
A
(
a
,
b
,
n
−
1
)
{\displaystyle A(a,b,n-1)}
与超运算并不完全相同
现代阿克曼函数
A
(
n
,
b
−
3
)
+
3
=
2
[
n
]
b
{\displaystyle A(n,b-3)+3=2[n]b}
和以2为底的超运算相同
南比尔表示法
a
⊗
n
−
1
b
{\displaystyle a\otimes ^{n-1}b}
南比尔(K. K. Nambiar)使用(对于
n
≥
1
{\displaystyle n\geq 1}
)[ 12]
框表示法
a
n
b
{\displaystyle a{\,{\begin{array}{|c|}\hline {\!n\!}\\\hline \end{array}}\,}b}
鲁佐勃夫(C. A. Rubtsov)与罗莫里奥(G. F. Romerio)使用[ 13] [ 2]
上标表示法
a
(
n
)
b
{\displaystyle a{}^{(n)}b}
默纳福(Robert Munafo)使用[ 14]
下标表示法
a
(
n
)
b
{\displaystyle a{}_{(n)}b}
默纳福用来表示低级超运算[ 14]
方括号表示法
a
[
n
]
b
{\displaystyle a[n]b}
在一些在线论坛中使用,利于ASCII 表示
康威链式箭号表示法
a
→
b
→
(
n
−
2
)
{\displaystyle a\to b\to (n-2)}
约翰·何顿·康威 使用(对于
n
≥
3
{\displaystyle n\geq 3}
)
Close
1928年,威廉·阿克曼 提出了一个三自变量的函数
ϕ
(
a
,
b
,
n
)
{\displaystyle \phi (a,b,n)}
,后来发展为现有的两个自变量的阿克曼函数 。初始的阿克曼函数与现在的超运算之间的区别更大,因为他当时使用了初始条件:对所有
n
>
2
{\displaystyle n>2}
,有
ϕ
(
a
,
0
,
n
)
=
a
{\displaystyle \phi (a,0,n)=a}
。另外他还将
n
=
0
{\displaystyle n=0}
指定为加法、
n
=
1
{\displaystyle n=1}
为乘法、
n
=
2
{\displaystyle n=2}
为幂。因而,幂运算及更高阶的运算就有了完全不同的结果。
More information , ...
n
运算
注释
0
F
0
(
a
,
b
)
=
a
+
b
{\displaystyle F_{0}(a,b)=a+b}
1
F
1
(
a
,
b
)
=
a
b
{\displaystyle F_{1}(a,b)=ab}
2
F
2
(
a
,
b
)
=
a
b
{\displaystyle F_{2}(a,b)=a^{b}}
3
F
3
(
a
,
b
)
=
a
[
4
]
(
b
+
1
)
{\displaystyle F_{3}(a,b)=a[4](b+1)}
类似超-4运算,但其迭代函数 比普通超-4运算更为复杂
4
F
4
(
a
,
b
)
=
(
x
↦
a
[
4
]
(
x
+
1
)
)
b
(
a
)
{\displaystyle F_{4}(a,b)=(x\mapsto a[4](x+1))^{b}(a)}
不要与超-5运算相混淆
Close
路莎·彼得(Rózsa Péter)还曾用
A
(
0
,
b
)
=
2
b
+
1
{\displaystyle A(0,b)=2b+1}
作初始条件,但无法形成一个超运算等级。
1984年,C.W.克莱恩肖(C. W. Clenshaw)和F.W.J.奥立弗(F. W. J. Olver)开始讨论如何使用超运算以防止计算机浮点数 溢出。[ 15] 此后,很多人[ 16] [ 17] [ 18] 都开始对于超运算在浮点数表示中的应用产生兴趣。在探讨超-4运算时,克莱恩肖等人曾令
F
n
(
a
,
0
)
=
0
{\displaystyle F_{n}(a,0)=0}
作为初始条件,这就产生了又一个超运算等级。
More information , ...
n
运算
注释
1
F
1
(
a
,
b
)
=
a
+
b
{\displaystyle F_{1}(a,b)=a+b}
2
F
2
(
a
,
b
)
=
a
b
=
e
ln
(
a
)
+
ln
(
b
)
{\displaystyle F_{2}(a,b)=ab=e^{\ln(a)+\ln(b)}}
3
F
3
(
a
,
b
)
=
a
b
=
e
b
ln
(
a
)
{\displaystyle F_{3}(a,b)=a^{b}=e^{b\ln(a)}}
4
F
4
(
a
,
b
)
=
a
[
4
]
(
b
−
1
)
{\displaystyle F_{4}(a,b)=a[4](b-1)}
类似超-4运算,但其迭代函数 比普通超-4运算更为复杂
5
F
5
(
a
,
b
)
=
(
x
↦
a
[
4
]
(
x
−
1
)
)
b
(
0
)
{\displaystyle F_{5}(a,b)=(x\mapsto a[4](x-1))^{b}(0)}
不要与超-5运算相混淆
Close
1914年阿尔伯特·贝内特 提出了超运算,很可能是关于超运算最早的尝试。交换超运算通过以下递归法则定义:
F
n
+
1
(
a
,
b
)
=
exp
(
F
n
(
ln
(
a
)
,
ln
(
b
)
)
)
{\displaystyle F_{n+1}(a,b)=\exp(F_{n}(\ln(a),\ln(b)))}
由于a和b的对称性,意味着所有的超运算都是可交换的。但由于序列并不包括幂运算,因此也就不能成为一个超运算等级。
More information , ...
n
运算
注释
0
F
0
(
a
,
b
)
=
ln
(
e
a
+
e
b
)
{\displaystyle F_{0}(a,b)=\ln(e^{a}+e^{b})}
1
F
1
(
a
,
b
)
=
a
+
b
=
ln
(
e
a
e
b
)
{\displaystyle F_{1}(a,b)=a+b=\ln(e^{a}e^{b})}
2
F
2
(
a
,
b
)
=
a
b
=
e
ln
(
a
)
+
ln
(
b
)
{\displaystyle F_{2}(a,b)=ab=e^{\ln(a)+\ln(b)}}
由对数 性质而来
3
F
3
(
a
,
b
)
=
e
ln
(
a
)
ln
(
b
)
{\displaystyle F_{3}(a,b)=e^{\ln(a)\ln(b)}}
幂运算的可交换形式
4
F
4
(
a
,
b
)
=
e
e
ln
(
ln
(
a
)
)
ln
(
ln
(
b
)
)
{\displaystyle F_{4}(a,b)=e^{e^{\ln(\ln(a))\ln(\ln(b))}}}
不要与超-4运算相混淆
Close
均衡超运算于1991年首先由克莱门特·弗拉皮耶(Clément Frappier)提出[ 19] ,这种超运算是基于函数
x
x
{\displaystyle x^{x}}
的,因而与斯坦豪斯-莫泽表示法 (Steinhaus-Moser notation)有关。均衡超运算的递归法则是
F
n
+
1
(
a
,
b
)
=
(
x
→
F
n
(
x
,
x
)
)
log
2
(
b
)
(
a
)
{\displaystyle F_{n+1}(a,b)=(x\to F_{n}(x,x))^{\log _{2}(b)}(a)}
还有一种变化形式的特点是从左到右的顺序进行求值,即:
a
+
b
=
(
a
+
(
b
−
1
)
)
+
1
{\displaystyle a+b=(a+(b-1))+1}
a
×
b
=
(
a
×
(
b
−
1
)
)
+
a
{\displaystyle a\times b=(a\times (b-1))+a}
a
b
=
(
a
(
b
−
1
)
)
×
a
{\displaystyle a^{b}=(a^{(b-1)})\times a}
令(通过°或下标)
a
(
n
+
1
)
b
=
(
a
(
n
+
1
)
(
b
−
1
)
)
(
n
)
a
{\displaystyle a_{(n+1)}b=(a_{(n+1)}(b-1))_{(n)}a}
,有初始条件
a
(
1
)
b
=
a
+
b
,
a
(
2
)
0
=
0
{\displaystyle a_{(1)}b=a+b,a_{(2)}0=0}
,且对所有
n
>
2
{\displaystyle n>2}
有
a
(
n
)
0
=
1
{\displaystyle a_{(n)}0=1}
。
这样所产生的一个问题是,在4阶时它就与通常的定义不同:
a
(
4
)
b
=
a
(
a
(
b
−
1
)
)
{\displaystyle a_{(4)}b=a^{(a^{(b-1)})}}
。出现这一问题的原因在于加法和乘法运算有一种称为结合律 的对称性,但这在幂运算上并不成立。由于通过这种超运算所得到的结果在3阶以上都比普通的超运算更小,因而把这种超运算称为低级超运算。
More information , ...
n
运算
注释
0
a
+
1
{\displaystyle a+1}
后继函数
1
F
1
(
a
,
b
)
=
a
+
b
{\displaystyle F_{1}(a,b)=a+b}
2
F
2
(
a
,
b
)
=
a
b
{\displaystyle F_{2}(a,b)=ab}
3
F
3
(
a
,
b
)
=
a
b
{\displaystyle F_{3}(a,b)=a^{b}}
幂运算
4
F
4
(
a
,
b
)
=
a
a
(
b
−
1
)
{\displaystyle F_{4}(a,b)=a^{a^{(b-1)}}}
不要与超-4运算相混淆
5
F
5
(
a
,
b
)
=
(
x
→
x
x
(
a
−
1
)
)
b
−
1
(
a
)
{\displaystyle F_{5}(a,b)=(x\to x^{x^{(a-1)}})^{b-1}(a)}
不要与超-5运算相混淆
Close
超运算等级推广至实数 的可能结果,当
F
n
(
3
,
3
)
{\displaystyle F_{n}(3,3)}
的n为实数时。目前实数阶的超运算未有相关理论能够计算,但仍可以以近似的方式得出结果。[ 20]
在取不同的初始条件或不同的递归法则时,就会产生不同的运算。一些数学家扩展出了超运算的许多变体。
通常,超运算等级(hyperoperation hierarchy)
(
S
,
I
,
F
)
{\displaystyle (S,\,I,\,F)}
是一个以集合
I
{\displaystyle I}
为索引集 、基于集合
S
{\displaystyle S}
的二元运算 族
(
F
n
)
n
∈
I
{\displaystyle (F_{n})_{n\in I}}
。对于
i
,
j
,
k
∈
I
{\displaystyle i,j,k\in I}
,有:
F
i
(
a
,
b
)
=
a
+
b
{\displaystyle F_{i}(a,b)=a+b}
(加法)
F
j
(
a
,
b
)
=
a
b
{\displaystyle F_{j}(a,b)=ab}
(乘法)
F
k
(
a
,
b
)
=
a
b
{\displaystyle F_{k}(a,b)=a^{b}}
(幂)
如果不满足最后一个条件的话,就能将交换超运算包括在内。当然,也可以明确地定义每一个超运算,但这就超出了我们讨论的范围。大多数的变体形式只包含了对于后继函数 (即加法)的定义,而乘法则由递归法则来进行定义。由于这属于对超运算等级的定义,而非等级本身的性质,很难给出形式上的定义。
对于超运算,除了古德斯坦给出的定义外,还有很多其他可能性。如果对
F
n
(
a
,
0
)
{\displaystyle F_{n}(a,0)}
和
F
n
(
a
,
1
)
{\displaystyle F_{n}(a,1)}
采用不同的初始条件,则产生的超运算在比幂运算更高阶时就会有不同的结果。现今的超运算定义的条件包括对所有
n
≥
3
{\displaystyle n\geq 3}
有
F
n
(
a
,
0
)
=
1
{\displaystyle F_{n}(a,0)=1}
,而在其他形式中也有
F
n
(
a
,
0
)
=
a
{\displaystyle F_{n}(a,0)=a}
或
F
n
(
a
,
0
)
=
0
{\displaystyle F_{n}(a,0)=0}
的情况。
关于超运算的一个未解决问题是超运算等级
(
N
,
N
,
F
)
{\displaystyle (\mathbb {N} ,\mathbb {N} ,F)}
是否能推广到
(
R
,
R
,
F
)
{\displaystyle (\mathbb {R} ,\mathbb {R} ,F)}
[ 21] :5 甚至
(
C
,
C
,
F
)
{\displaystyle (\mathbb {C} ,\mathbb {C} ,F)}
,以及
(
C
,
F
n
)
{\displaystyle (\mathbb {C} ,F_{n})}
是否能成为一个拟群 。
鲁宾·古德斯坦 使用超运算序列定义了一套能表达非负整数的记数系统 [ 1] 。
Daniel Zwillinger. CRC standard mathematical tables and formulae, 31st Edition. CRC Press. 2002: 4. ISBN 1584882913 .
Eric W. Weisstein. CRC concise encyclopedia of mathematics, 2nd Edition. CRC Press. 2003: 127–128. ISBN 1584883472 .