Ackermann函数相关整理

Ackermann函数是计算机科学中常出现的函数,本文将Ackermann函数相关整理如下:
定义:
A(1, j ) = 2j, j>=1
A( i, 1) = A( i-1, 2) , i>=2
A( i, j ) = A( i-1, A( i, j-1) ), i, j >=1
A(0, x) = 2*x , x>=0
A( i, 0) = 1, i>=1
简单的递归实现:

int A(int i,int j)
{
    if(i>=1&&j>=1) return A(i-1,A(i,j-1));
    else if(i>=1&&j==0) return 1;
    else if(i==0&&j>=1) return 2*j;
    else if(i>=0&&j==-1) return 0;

}

Ackermann函数的逆:
the row inverse of A is
a(i,n)= min { j>=0|A( i, j) > n } , i,n >=0
the functional inverse of A is
α(M,N)= min { i>=1|A( i, ⌊M/N⌋) > log N }
α(M,N)= min { i>=1| a(i,N)<= 4⌈M/N⌉}
单变量逆Ackermann函数有时写成log * N,它是N的直到N<=1时取对数的次数
or
α(M,N)= min { i>=1|A( i, 4⌈M/N⌉) >= N } ,m>=0,n>=1(tips:⌈0⌉的值取1)
注意到α(0,n)= α(1,n)
定理:
1.a(i,A(i+1,x+1))= A(i+1,x), i,n >=0
2.let n >= 1 and let f1 and f2 be such that
α(f2+1,n)= α(f2,n)-1 = α(f1+1,n)-1 = α(f1,n)-2
Then f2>=3f1>=3n
3.let n >= 1 and f >= 0
Then α(f,n)< α(0,n)=> f>n ^ 8f>=na(α(f,n),n)
4.let i>= 2 n>=0
Then a(i,n) >=5 =>a(i,n)<1/3 * a(i-1, n)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值