如何从给定的递归函数中找到递归关系
How to find recurrence relation from a given recursive function
我正在复习我的数据结构和算法课程的旧考试集,似乎无法弄清楚如何解决这个问题。
问题(d)通过以下递归方法求乘法次数的递归关系:
static int f(int N)
{
if (N > 1) return 2*f(N - 1);
else return 3;
}
答案: T(N) = T(N − 1) + 1
我不太明白这个关系是怎么求乘法的?
T(2) = T(2 - 1) + 1 = 2
T(3) = T(3 - 1) + 1 = 3
我尝试在关系中插入 2 和 3,但我仍然看不出乘法的数量。我在正确的轨道上吗?
对于f(N)
,你比f(N-1)
多了一次递归调用,所以多了一次乘法,因此
T(N) = T(N-1) + 1
基本案例T(1) = 0
。
我正在复习我的数据结构和算法课程的旧考试集,似乎无法弄清楚如何解决这个问题。
问题(d)通过以下递归方法求乘法次数的递归关系:
static int f(int N)
{
if (N > 1) return 2*f(N - 1);
else return 3;
}
答案: T(N) = T(N − 1) + 1
我不太明白这个关系是怎么求乘法的?
T(2) = T(2 - 1) + 1 = 2
T(3) = T(3 - 1) + 1 = 3
我尝试在关系中插入 2 和 3,但我仍然看不出乘法的数量。我在正确的轨道上吗?
对于f(N)
,你比f(N-1)
多了一次递归调用,所以多了一次乘法,因此
T(N) = T(N-1) + 1
基本案例T(1) = 0
。