超运算

来自testwiki
跳转到导航 跳转到搜索

超運算序列数学中一种二元运算序列,前三分别为加法乘法,一般來說,除了序列中第一項的加法運算之外,序列中每一項的運算都是重複的前一項的運算(例如乘法是重複的加法:ab=a+a+a++ab,冪是重複的乘法:ab=aaaab)。这些运算通称为超运算(或稱為hyper運算符)。序列中的第n项称为超-n运算n級的超運算,其符號為[n]。英文則由Template:En-link命名,當n≥4時,由n希腊语前缀加上后缀-ation组成(例如超-4运算称为tetration超-5运算称为Template:Link-en)。[1]n≥3 時,使用高德纳箭号表示法可将超-n运算的符號表示为(n-2)个箭头。

超运算可通过递归进行定义,對於所有正整數a,正整數b和正整數n

a[1]b=a+b, for n>1, a[n]b=a[n1](a[n1](a[n1](a[n1](a[n1]ab))))

除这一最常见的定义之外,超运算还有其他的变体。(见下文

定义

超运算序列是定义在自然数上的一个序列,记为Hn。前三项为加法(n=1)、乘法(n=2)和(n=3)。高阶超运算的参数与幂运算相似,[2]即a称为底数,b称为指数(或称超指数[3]),而n则称为阶数。

高德纳箭号表示法可以将超运算定义为

Hn(a,b)=an2b=a[n]b={b+1n=0an=1b=00n=2b=01n3b=0Hn1(a,Hn(a,b1))otherwise

注意到,对于序列的前三项有:

  • a+b=1+(a+(b1))
  • ab=a+(a×(b1))
  • ab=a(a(b1))

通过这样的递归能够定义出高阶运算,从而输入很小的数就可以产生非常大的数。

其实,某一超运算就是一种基于低一阶超运算而进行数的复合的方法。我们可以以加法、乘法与幂的概念为例来说明。加法运算就是将指定次数的1加到原本的数上从而得到最终的结果(如2+3是将1三次加到2上),乘法运算就是将指定次数的某数通加(如2×3就是3个2相加),幂运算则是将指定次数的某数通乘(如23就是3个2相乘)。

实例

下表列出了前七个超运算:

n 运算 定义 名称 定义域
0 1+b 1+1+1+1++1b 超-0运算、后继函数 任意b
1 a+b a+1+1+1++1b 超-1运算、加法 任意
2 ab a+a+a++ab 超-2运算、乘法 任意
3 a[3]b=ab aaaaab 超-3运算、 a>0,b为实数;或a=0,b为整数(某些情况下可扩展为复数)
4 a[4]b=ba a[3](a[3](a[3]([3](a[3](a[3]a)))))b 超-4运算、迭代冪次(英文:tetration) a>0,b1且为整数(某些情况下可扩展)
5 a[5]b=ba a[4](a[4](a[4]([4](a[4](a[4]a)))))b 超-5运算、五級運算(英文:pentation) a和b都为整数,且a>0,b0
6 a[6]b a[5](a[5](a[5]([5](a[5](a[5]a)))))b 超-6运算(英文:hexation) a和b都为整数,且a>0,b0
n a[n]b a[n1](a[n1](a[n1]([n1](a[n1](a[n1]a)))))b 超-n运算(英文:hyper-n) a和b都为整数,且a>0,b0

历史

1914年,阿尔伯特·贝内特(Albert Bennett)最早提出了超运算,他发展出了一套交换超运算(见下文)的理论。[4]12年之后,威廉·阿克曼定义了函数ϕ(a,b,n)[5],和超运算序列已经有了某种程度上的相似。最早的使用三个自变量的阿克曼函数使用了同样的递归法则,但有两点与现在的超运算不同。一是它定义了n=0时为加法、n=1时为乘法、n=2时为幂运算,二是由其对ϕ初始条件的定义能得到ϕ(a,b,3)=a[4](b+1),最后的运算结果与超运算不同。[6][7][8]

1947年,鲁宾·古德斯坦[1]提出现在所使用的超运算序列,只是那时他使用记号G(n,a,b)来表示,而非今天的a[n]b。在1947年的论文中,古德斯坦还引进了幂运算之后超运算的英文名称,即tetration、pentation、hexation等。

符号表示

下表列出了曾用来表示超运算的各种符号表示法:

名称 符号表示 注解
高德纳箭号表示法 an2b 高德纳使用(對於n3[9],也在相关参考书目中提及[10][11]
古德斯坦表示法 G(n,a,b) 鲁宾·古德斯坦使用[1]
初始阿克曼函数 A(a,b,n1) 与超运算并不完全相同
现代阿克曼函数 A(n,b3)+3=2[n]b 和以2为底的超运算相同
南比尔表示法 an1b 南比尔(K. K. Nambiar)使用(對於n1[12]
框表示法 anb 鲁佐勃夫(C. A. Rubtsov)与罗莫里奥(G. F. Romerio)使用[13][2]
上标表示法 a(n)b 默纳福(Robert Munafo)使用[14]
下标表示法 a(n)b 默纳福用来表示低级超运算[14]
方括号表示法 a[n]b 在一些在线论坛中使用,利于ASCII表示
康威鏈式箭號表示法 ab(n2) 約翰·何頓·康威使用(對於n3

从a开始的变体形式

1928年,威廉·阿克曼提出了一个三自变量的函数ϕ(a,b,n),后来发展为现有的两个自变量的阿克曼函数。初始的阿克曼函数与现在的超运算之间的区别更大,因为他当时使用了初始条件:对所有n>2,有ϕ(a,0,n)=a。另外他还将n=0指定为加法、n=1为乘法、n=2为幂。因而,幂运算及更高阶的运算就有了完全不同的结果。

n 运算 注释
0 F0(a,b)=a+b
1 F1(a,b)=ab
2 F2(a,b)=ab
3 F3(a,b)=a[4](b+1) 类似超-4运算,但其迭代函数比普通超-4运算更为复杂
4 F4(a,b)=(xa[4](x+1))b(a) 不要与超-5运算相混淆

路莎·彼得(Rózsa Péter)还曾用A(0,b)=2b+1作初始条件,但无法形成一个超运算等级。

从0开始的变体形式

1984年,C.W.克莱恩肖(C. W. Clenshaw)和F.W.J.奥立弗(F. W. J. Olver)开始讨论如何使用超运算以防止计算机浮点数溢出。[15]此后,很多人[16][17][18]都开始对于超运算在浮点数表示中的应用产生兴趣。在探讨超-4运算时,克莱恩肖等人曾令Fn(a,0)=0作为初始条件,这就产生了又一个超运算等级。

n 运算 注释
1 F1(a,b)=a+b
2 F2(a,b)=ab=eln(a)+ln(b)
3 F3(a,b)=ab=ebln(a)
4 F4(a,b)=a[4](b1) 类似超-4运算,但其迭代函数比普通超-4运算更为复杂
5 F5(a,b)=(xa[4](x1))b(0) 不要与超-5运算相混淆

交换超运算

1914年阿尔伯特·贝内特提出了超运算,很可能是关于超运算最早的尝试。交换超运算通过以下递归法则定义:

Fn+1(a,b)=exp(Fn(ln(a),ln(b)))

由于a和b的对称性,意味着所有的超运算都是可交换的。但由于序列并不包括幂运算,因此也就不能成为一个超运算等级。

n 运算 注释
0 F0(a,b)=ln(ea+eb)
1 F1(a,b)=a+b=ln(eaeb)
2 F2(a,b)=ab=eln(a)+ln(b) 对数性质而来
3 F3(a,b)=eln(a)ln(b) 幂运算的可交换形式
4 F4(a,b)=eeln(ln(a))ln(ln(b)) 不要与超-4运算相混淆

均衡超运算

均衡超运算于1991年首先由克莱门特·弗拉皮耶(Clément Frappier)提出[19],这种超运算是基于函数xx的,因而与斯坦豪斯-莫泽表示法(Steinhaus-Moser notation)有关。均衡超运算的递归法则是

Fn+1(a,b)=(xFn(x,x))log2(b)(a)
n 运算 注释
0 不存在
1 F1(a,b)=a+b
2 F2(a,b)=ab=a2log2(b)
3 F3(a,b)=ab=a2log2(b) 就是幂运算
4 F4(a,b)=(xxx)log2(b)(a) 不要与超-4运算相混淆

低级超运算

还有一种变化形式的特点是从左到右的顺序进行求值,即:

  • a+b=(a+(b1))+1
  • a×b=(a×(b1))+a
  • ab=(a(b1))×a

令(通过°或下标)a(n+1)b=(a(n+1)(b1))(n)a,有初始条件a(1)b=a+b,a(2)0=0,且对所有n>2a(n)0=1

这样所产生的一个问题是,在4阶时它就与通常的定义不同:a(4)b=a(a(b1))。出现这一问题的原因在于加法和乘法运算有一种称为结合律的对称性,但这在幂运算上并不成立。由于通过这种超运算所得到的结果在3阶以上都比普通的超运算更小,因而把这种超运算称为低级超运算。

n 运算 注释
0 a+1 后继函数
1 F1(a,b)=a+b
2 F2(a,b)=ab
3 F3(a,b)=ab 幂运算
4 F4(a,b)=aa(b1) 不要与超-4运算相混淆
5 F5(a,b)=(xxx(a1))b1(a) 不要与超-5运算相混淆

其他變體

超運算等級推廣至實數的可能結果,當Fn(3,3)的n為實數時。目前實數階的超運算未有相關理論能夠計算,但仍可以以近似的方式得出結果。[20]

在取不同的初始条件或不同的递归法则时,就会产生不同的运算。一些数学家扩展出了超运算的许多变体。

通常,超运算等级(hyperoperation hierarchy)(S,I,F)是一个以集合I索引集、基于集合S二元运算(Fn)nI。对于i,j,kI,有:

  • Fi(a,b)=a+b(加法)
  • Fj(a,b)=ab(乘法)
  • Fk(a,b)=ab(幂)

如果不满足最后一个条件的话,就能将交换超运算包括在内。当然,也可以明确地定义每一个超运算,但这就超出了我们讨论的范围。大多数的变体形式只包含了对于后继函数(即加法)的定义,而乘法则由递归法则来进行定义。由于这属于对超运算等级的定义,而非等级本身的性质,很难给出形式上的定义。

对于超运算,除了古德斯坦给出的定义外,还有很多其他可能性。如果对Fn(a,0)Fn(a,1)采用不同的初始条件,则产生的超运算在比幂运算更高阶时就会有不同的结果。现今的超运算定义的条件包括对所有n3Fn(a,0)=1,而在其他形式中也有Fn(a,0)=aFn(a,0)=0的情况。

关于超运算的一个未解决问题是超运算等级(,,F)是否能推广到(,,F)[21]Template:Rp甚至(,,F),以及(,Fn)是否能成为一个拟群

使用超運算的记数系统

Template:Link-wd使用超運算序列定義了一套能表達非負整數的记数系统[1]

参考文献

Template:Reflist

Template:- Template:大数