Time complexity 斐波那契函数执行的算术运算数

Time complexity 斐波那契函数执行的算术运算数,time-complexity,fibonacci,Time Complexity,Fibonacci,对于这个问题,我们给出了一个函数f,它以标准方式计算第n个斐波那契数: f(n) { if(n == 0) return 0; if(n == 1) return 1; else return f(n-1) + f(n-2); } 然后,我的任务是计算函数对输入n执行的算术运算的数量。我知道对f的每次调用都执行3个运算(2减1加),然后我试图通过扩展函数来找到它,尝试找到某种递归关系,然后计算出完成了多少算术运算。但后来我被卡住了,因为这不是正确的答案 正确答案是f

对于这个问题,我们给出了一个函数f,它以标准方式计算第n个斐波那契数:

f(n)
 {
  if(n == 0)
   return 0;
  if(n == 1)
   return 1;
  else return f(n-1) + f(n-2);
 }
然后,我的任务是计算函数对输入n执行的算术运算的数量。我知道对f的每次调用都执行3个运算(2减1加),然后我试图通过扩展函数来找到它,尝试找到某种递归关系,然后计算出完成了多少算术运算。但后来我被卡住了,因为这不是正确的答案

正确答案是f对输入n进行3f(n+1)-3次算术运算。有人能给我解释一下吗?这一点很重要,因为我们以后会被要求使用它作为起点来找到时间复杂性

非常感谢,
Niamh算法的时间复杂度接近2^(n)。因此它是O(2^n) 下面是一个示例,说明了如果n=6,您的算法将如何求解

你的算法是
T(n)=T(n-1)+T(n-2)+O(1)

T(n-1)=T(n-2)+T(n-3)+O(1)

T(n-2)=T(n-3)+T(n-4)+O(1)

。 .

T(2)=T(1)+T(0)+O(1)

看看

T(n)=T(n-1)+T(n-2)+O(1),等于


T(n)=O(2^(n-1))+O(2^(n-2))+O(1)=O(2^n)

可能是执行的加法运算的n/2倍

for(i=3;i<=n;i++)
let n=4;
variable a,b=0,c=1;
[a=b+c;b=c;c=a;].........(1) //now a=1;b=1;c=1;
[a=b+c,b=c,c=a)...............(2) //now a=2;b=1;c=2;
for(i=3;iYou可能想查看答案。它试图归纳计算计算斐波那契数列中第n个数的时间复杂度。