超运算

超運算序列是数学中一种二元运算的序列，前三项分别为加法、乘法、幂，一般來說，除了序列中第一項的加法運算之外，序列中每一項的運算都是重複的前一項的運算（例如乘法是重複的加法： 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]。英文則由鲁賓·古德斯坦（英语：Reuben Goodstein）命名，當n≥4時，由n的希腊语前缀加上后缀-ation组成（例如超-4运算称为tetration，超-5运算称为pentation（英语：pentation））。當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 ))} 除这一最常见的定义之外，超运算还有其他的变体。（见下文） 超运算序列是定义在自然数集 N {\displaystyle \mathbb {N} } 上的一个序列，记为 H n {\displaystyle H_{n}} 。前三项为加法（n=1）、乘法（n=2）和幂（n=3）。高阶超运算的参数与幂运算相似，即a称为底数，b称为指数（或称超指数），而n则称为阶数。 用高德纳箭号表示法可以将超运算定义为 H n ( a , b ) = a ↑ n − 2 b = a [ n ] b = { b + 1 n = 0 a n = 1 ∧ b = 0 0 n = 2 ∧ b = 0 1 n ≥ 3 ∧ b = 0 H n − 1 ( a , H n ( a , b − 1 ) ) otherwise {\displaystyle H_{n}(a,b)=a\uparrow ^{n-2}b=a[n]b={\begin{cases}b+1&n=0\\a&n=1\land b=0\\0&n=2\land b=0\\1&n\geq 3\land b=0\\H_{n-1}(a,H_{n}(a,b-1))&{\text{otherwise}}\end{cases}}} 注意到，对于序列的前三项有： a + b = 1 + ( a + ( b − 1 ) ) {\displaystyle a+b=1+(a+(b-1))} a ⋅ b = a + ( a × ( b − 1 ) ) {\displaystyle a\cdot b=a+(a\times (b-1))} a b = a ⋅ ( a ( b − 1 ) ) {\displaystyle a^{b}=a\cdot (a^{(b-1)})} 通过这样的递归能够定义出高阶运算，从而输入很小的数就可以产生非常大的数。 其实，某一超运算就是一种基于低一阶超运算而进行数的复合的方法。我们可以以加法、乘法与幂的概念为例来说明。加法运算就是将指定次数的1加到原本的数上从而得到最终的结果（如2+3是将1三次加到2上），乘法运算就是将指定次数的某数通加（如 2 × 3 {\displaystyle 2\times 3} 就是3个2相加），幂运算则是将指定次数的某数通乘（如 2 3 {\displaystyle 2^{3}} 就是3个2相乘）。 下表列出了前七个超运算： 1914年，阿尔伯特·贝内特（Albert Bennett）最早提出了超运算，他发展出了一套交换超运算（见下文）的理论。12年之后，威廉·阿克曼定义了函数 ϕ ( a , b , n ) {\displaystyle \phi (a,b,n)} ，和超运算序列已经有了某种程度上的相似。最早的使用三个自变量的阿克曼函数使用了同样的递归法则，但有两点与现在的超运算不同。一是它定义了 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)} ，最后的运算结果与超运算不同。 1947年，鲁宾·古德斯坦提出现在所使用的超运算序列，只是那时他使用记号 G ( n , a , b ) {\displaystyle G(n,a,b)} 来表示，而非今天的 a [ n ] b {\displaystyle a[n]b} 。在1947年的论文中，古德斯坦还引进了幂运算之后超运算的英文名称，即tetration、pentation、hexation等。 下表列出了曾用来表示超运算的各种符号表示法： 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} 为幂。因而，幂运算及更高阶的运算就有了完全不同的结果。 路莎·彼得（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）开始讨论如何使用超运算以防止计算机浮点数溢出。此后，很多人都开始对于超运算在浮点数表示中的应用产生兴趣。在探讨超-4运算时，克莱恩肖等人曾令 F n ( a , 0 ) = 0 {\displaystyle F_{n}(a,0)=0} 作为初始条件，这就产生了又一个超运算等级。 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的对称性，意味着所有的超运算都是可交换的。但由于序列并不包括幂运算，因此也就不能成为一个超运算等级。 均衡超运算于1991年首先由克莱门特·弗拉皮耶（Clément Frappier）提出，这种超运算是基于函数 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阶以上都比普通的超运算更小，因而把这种超运算称为低级超运算。 在取不同的初始条件或不同的递归法则时，就会产生不同的运算。一些数学家扩展出了超运算的许多变体。 通常，超运算等级（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)} 甚至 ( C , C , F ) {\displaystyle (\mathbb {C} ,\mathbb {C} ,F)} ，以及 ( C , F n ) {\displaystyle (\mathbb {C} ,F_{n})} 是否能成为一个拟群。 鲁賓·古德斯坦（英语：Reuben Goodstein）使用超運算序列定義了一套能表達非負整數的记数系统。 R. L. Goodstein. Transfinite Ordinals in Recursive Number Theory. Journal of Symbolic Logic. Dec 1947, 12 (4): 123–129 [2009-04-17]. doi:10.2307/2266486. （原始内容存档于2016-03-03）.  G. F. Romerio. Hyperoperations Terminology. Tetration Forum. 2008-01-21 [2009-04-21]. （原始内容存档于2011-10-02）.  外部链接存在于|publisher= (帮助) I. N. Galidakis. Mathematics. 2003 [2009-04-17]. （原始内容存档于2009-04-20）.  Albert A. Bennett. Note on an Operation of the Third Grade. Annals of Mathematics, Second Series. Dec 1915, 17 (2): 74–75 [2009-04-17]. （原始内容存档于2016-09-17）.  Wilhelm Ackermann. Zum Hilbertschen Aufbau der reellen Zahlen. Mathematische Annalen. 1928, 99: 118–133. doi:10.1007/BF01459088.  Paul E. Black. Ackermann's function. Dictionary of Algorithms and Data Structures. U.S. National Institute of Standards and Technology (NIST). 2009-03-16 [2009-04-17]. （原始内容存档于2009-04-22）.  外部链接存在于|work= (帮助) Robert Munafo. Versions of Ackermann's Function. Large Numbers at MROB. 1999-11-03 [2009-04-17]. （原始内容存档于2008-12-21）.  J. Cowles and T. Bailey. Several Versions of Ackermann's Function. Dept. of Computer Science, University of Wyoming, Laramie, WY. 1988-09-30 [2009-04-17]. （原始内容存档于2008-10-04）.  Donald E. Knuth. Mathematics and Computer Science: Coping with Finiteness. Science. Dec 1976, 194 (4271): 1235–1242 [2009-04-21]. PMID 17797067. doi:10.1126/science.194.4271.1235. （原始内容存档于2008-12-08）.  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.  K. K. Nambiar. Ackermann Functions and Transfinite Ordinals. Applied Mathematics Letters. 1995, 8 (6): 51–53 [2009-04-21]. doi:10.1016/0893-9659(95)00084-4. （原始内容存档于2008-12-08）.  C. A. Rubtsov and G. F. Romerio. Ackermann's Function and New Arithmetical Operation. 2005-12 [2009-04-17]. （原始内容存档于2008-05-29）.  Robert Munafo. Inventing New Operators and Functions. Large Numbers at MROB. 1999-11 [2009-04-17]. （原始内容存档于2009-08-06）.  C.W. Clenshaw and F.W.J. Olver. Beyond floating point. Journal of the ACM. Apr 1984, 31 (2): 319–328 [2009-04-21]. doi:10.1145/62.322429.  W. N. Holmes. Composite Arithmetic: Proposal for a New Standard. Computer. Mar 1997, 30 (3): 65–73 [2009-04-21]. doi:10.1109/2.573666.  R. Zimmermann. Computer Arithmetic: Principles, Architectures, and VLSI Design (PDF). Lecture notes, Integrated Systems Laboratory, ETH Zürich. 1997 [2009-04-17]. （原始内容 (PDF)存档于2013-08-17）.  T. Pinkiewicz and N. Holmes and T. Jamil. Design of a composite arithmetic unit for rational numbers. Proceedings of the IEEE: 245–252. 2000 [2009-04-17].  C. Frappier. Iterations of a kind of exponentials. Fibonacci Quarterly. 1991, 29 (4): 351–361.  José Crespo, Francisco Javier Montáns. Fractional Mathematical Operators and Their Computational Approximation. Mathematical Problems in Engineering. 2016, 2016: 1–11 [2021-06-12]. ISSN 1024-123X. doi:10.1155/2016/4356371. （原始内容存档于2021-05-06） （英语）.  Constantin A. Rubtsov and G. Romerio, Ackermann's Function and New Arithmetical Operation, 2004 [2021-10-02], （原始内容存档于2021-10-02）