如何从给定的递归函数中找到递归关系

时间:2019-04-10 16:41:24

标签: algorithm recursion recurrence

我正在为数据结构和算法课程进行旧的考试,似乎无法弄清楚如何解决此问题。

问题(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,但仍然看不到乘法的数量。我在正确的轨道上吗?

1 个答案:

答案 0 :(得分:2)

对于f(N),您的递归调用比对f(N-1)的递归调用多,因此,乘法也多,

T(N) = T(N-1) + 1

具有基本情况T(1) = 0