我刚才找到了这个问题的答案,但后来却忘了它。经过几个小时的再次搜索,我似乎无法找到它。我有这种递归方法:
public static int f(int x, int y) {
if (x==0) return 1+y;
if (y==0) return f(x-1,1);
return f(x-1, f(x,y-1));
}
我知道确定将返回的公式是:
x = 0
时,公式为y + 1
在x = 1
时,公式为y + 2
在x = 2
时,公式为2y + 3
。
除此之外,我什么都不知道。
我的问题是这个递归算法被称为什么,有没有办法确定x
和y
的任何值的完全简化的函数?提前谢谢!
答案 0 :(得分:4)
看起来像Ackermann函数:http://en.wikipedia.org/wiki/Ackermann_function
根据维基百科,这是一个多重递归问题,所以我认为没有非递归方式来表示它。