打开/关闭菜单
打开/关闭外观设置菜单
打开/关闭个人菜单
未登录
未登录用户的IP地址会在进行任意编辑后公开展示。

高德纳箭头

来自Googology Wiki

高德纳箭头(Knuth's arrow notation,亦称"上箭头记号"),一种满足右结合律的二元运算。它涉及对运算的递归。[1]

定义

高德纳箭头由如下公式递归定义:

  • ab=ab
  • ac0=1
  • ac+1(b+1)=ac(ac+1b)

其中,a,c 均为正整数,b自然数acb=a c b

在计算高德纳箭头时,如无括号,按照从右往左的顺序计算,即:

ambnc=am(bnc)

若将高德纳箭头的右结合律更替为左结合律,其余定义不变,将得到下箭头记号

性质

高德纳箭头有如下性质:

展开

nkm=nk1nk1k1nm个n

恒等律

  • 2c+12=2c2=...=22=4
  • ac+11=acac+10=ac1=...=a1=a
  • 1c+1b+1=1c(1c+1b)=1c(1c(c(1c1)))=1c1=1

增长率

高德纳箭头的 FGH 增长率为 ω,特别地,acbfc+1(b)

该推论可通过审视以下两组式子得到:

  • ac+1(b+1)=ac(ac+1b)
  • fc+1(b+1)=fcb+1(b+1)=fc(fcb(b+1))

超运算

高德纳箭头是目前已被广泛认可、基本采用的超运算记号

若定义后继运算的运算等级为 0,那么 n 个高德纳箭头的运算等级为 n+2。

历史

高德纳箭头是由 Donald Ervin Knuth 在 1976 年发明的大数记号[2],曾在 1977 年被 Martin Gardner 用于递归地定义葛立恒数[3]

Ronald Graham本人并未在论文中使用高德纳箭头或超运算来估计 葛立恒问题 的上界,而是使用了类似 阿克曼函数 的递归函数 F(m,n),和分别近似为 2n,2n 的函数 TOWER(n),WOW(n)[4][5]

构造过程

高德纳箭头本质上是一种高级运算“折叠”低级运算的记号。

现在让我们回到数学的起点,并考察各种级别的运算是如何逐渐地建立起来的。这将进一步地启发我们构造增长率更快的计数法。

后继

为了使某数 n 变大,最简单的运算应该就是“数出 n 这个数后面的一个数”。我们将这种运算称为“后继”。后继是最基础的运算,表现为 n+1.

加法

我们经常需要表示一种“从 n 开始,取 m 次后继”这样的运算。写得次数太多了之后,我们就引入了一个新的运算符 +,将这样的运算称为“加法”,表示为 n+m.

在 n+m 中,运算 + 折叠了对 n 的 m 次后继运算,即

 n+m=n+1+1++1m个1.

乘法

还能不能更快些呢?假设我们已经通过某些操作得到了 n,那么要想最快地得到一些更大的数,我们就要将 n 加上自身,并将这个过程重复若干次。我们引入一个新的运算符 ×,将这样的运算称为“乘法”,表示为 n×m.

n×m 中,运算 × 折叠了对 n 的 m 次 + 运算,即

 n×m=n+n++nm个n.

乘方

对乘法重复若干次,我们就可以得到一个增长更快的运算。仿照之前的过程,我们进一步引入一个新的运算符 ,将这一运算称为“乘方”,表示为 nmnm.

nm ( nm ) 中,运算 折叠了对 n 的 m 次 × 运算,即

 nm=n×n××nm个n.

幂塔

我们已经看到了上述各个运算的推广过程:最简单的运算是后继;将后继重复若干次可以得到一个增长更快的运算,称为加法;将加法重复若干次可以再次得到一个增长更快的运算,称为乘法;进一步地将乘法重复若干次,我们又可以得到一个增长速度更快的运算,称为乘方。这里面的每一个运算的增长速度都远远超过了此前的所有运算。

现在如果我们想要得到一个增长速度超越乘方的运算,那么应该如何做呢?答案已经很简单了:我们只需要将乘方运算(单箭头运算 )重复若干次,并将其定义为一个新的运算“幂塔”即可。我们将这一运算的运算符用双箭头 来进行表示。

mn ( nm ) 中,运算 折叠了对 n 的 m 次 运算,即

 nm=nnnm个n=nnnm个n. (注意是右结合)

高德纳箭头

仿照上述定义,以此类推。

最终,我们得到了高德纳箭头的展开定义:

nkm 中,运算 k 折叠了对 n 的 m 次 k1 运算,即

 nkm=nk1nk1k1nm个n.

计算示例

33 =333=3(333)=3(327)=37625597484987=3337625597484987


34 =3333=333337625597484987=3( 3333337625597484987 )=3333333337625597484987

参考资料

  1. Guy, R. K., & Selfridge, J. L. (1973). The Nesting and Roosting Habits of the Laddered Parenthesis. Amer. Math. Monthly, 80, 868-876.
  2. Knuth, D. E. (1976). Mathematics and Computer Science: Coping with Finiteness, Advances in Our Ability to Compute are Bringing Us Substantially Closer to Ultimate Limitations. Science, 194, pp. 1235--1242. https://cse-robotics.engr.tamu.edu/dshell/cs625/finiteness.pdf
  3. Gardner, M. (1977). Mathematical games[J]. Scientific American, 1977, 237(3): 28-38. https://raw.githubusercontent.com/AllenDowney/ModSimPy/master/papers/scientific_american_nov_77.pdf
  4. Graham, R. L., & Rothschild, B. L. (1971). Ramsey’s theorem for $n$-parameter sets[J]. Transactions of the American Mathematical Society, 159: 257-292. https://www.ams.org/journals/tran/1971-159-00/S0002-9947-1971-0284352-8/S0002-9947-1971-0284352-8.pdf
  5. Graham, R. L., & Rothschild, B. L., & Spencer, J. H. (1991). Ramsey theory: Vol. 20[M]. John Wiley & Sons. https://people.dm.unipi.it/dinasso/ULTRABIBLIO/Graham_Rothschild_Spencer%20-%20Ramsey%20Theory%20(2nd%20edition).pdf