当一个函数以及它的一个变量由函数自身定义时,称这个函数为双递归函数———Ackerman函数。
Ackerman函数A(n,m)有两个独立的变量m≥0和n≥0,其定义如下:
A(1,0)=2
A(0,m)=1 m≥0
A(n,0)=n+2 n≥2
A(n,m)=A(A(n-1,m),m-1) n,m≥1
A(n,m)的自变量m的每一个值都定义了一个单变量函数。
- m=0时,递归式的第三式表示定义了函数“加2”,递增函数A(n,0)=n+2
- m=1时,A(1,1)=A(A(0,1),0)=A(0,1)+2 因此A(n,1)=2n n≥1
- m=2时,A(1,2)=A(A(0,2),1)=2A(0,2) 因此A(n,2)=2^n
- m=3时,A(1,3)=A(A(0,3),2)=2^A(0,3) =2 A(2,3)=A(A(1,3),2)=2^A(1,3) =2^2 A(3,3)=A(A(2,3),2)=2^A(2,3)=2^2^2 A(n,3)=A(A(n-1,3),2)=2^A(n-1,3)=2^2^2^....^2 (n个2)
- m=4时,增长速度非常快,以至于没有适当的数学式子来表示这一函数
例如,由A(0)=1,A(1)=2,A(2)=4,A(3)=16,A(4)=2^2^2...^2(2的层数为65536)推知α(1)=0,α(2)=1,α(3)=α(4)=2,α(5)=...=α(16)=3。可以看出A(n)增长速度非常快,而拟逆函数α(n)增长速度非常慢