【问题标题】:How to find recurrence relation from a given recursive function如何从给定的递归函数中找到递归关系
【发布时间】:2019-09-01 04:55:50
【问题描述】:

我正在检查我的数据结构和算法课程的旧考试集,但似乎无法弄清楚如何解决这个问题。

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

【问题讨论】:

    标签: algorithm recursion recurrence


    【解决方案1】:

    对于f(N),你比f(N-1)多了一个递归调用,所以多了一个乘法,因此

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

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

    【讨论】:

      猜你喜欢
      • 2021-02-04
      • 2014-04-29
      • 1970-01-01
      • 2014-10-02
      • 2019-10-18
      • 1970-01-01
      • 2016-01-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多