首页 > 代码库 > Ackerman 函数 (双递归函数)

Ackerman 函数 (双递归函数)

public static int ackerman(int n,int m){
  if(n==1&&m==0){return 2;}
  else if(n==0&&m>=0) {return 1;}
  else if(n>=2&&m==0) {return n+2;}
  else  {return ackerman(ackerman(n-1, m), m-1);}
 }

 

函数表达式:

第一个参数代表 n 第二个参数 代表 m

 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 

Ackerman 函数 (双递归函数)