未知的递归算法

时间:2013-05-18 21:57:31

标签: java algorithm recursion

我刚才找到了这个问题的答案,但后来却忘了它。经过几个小时的再次搜索,我似乎无法找到它。我有这种递归方法:

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

除此之外,我什么都不知道。

我的问题是这个递归算法被称为什么,有没有办法确定xy的任何值的完全简化的函数?提前谢谢!

1 个答案:

答案 0 :(得分:4)

看起来像Ackermann函数:http://en.wikipedia.org/wiki/Ackermann_function

根据维基百科,这是一个多重递归问题,所以我认为没有非递归方式来表示它。