递归关系 - 斐波那契

时间:2013-12-20 00:12:29

标签: math recursion fibonacci

我一直在为我的ComSci课程做一些过去的论文,我在理解这个问题时遇到了一些麻烦:

“定义一个递归关系,表示使用以下函数查找第n个Fibonacci数所涉及的调用次数:”

def f(n):
if n == 1 or n == 2:
    return 1
else:
    return f(n - 1) + f(n - 2)

我理解函数如何工作f(1),f(2)需要1个调用f(3)需要3,f(4)需要5等...但是,我不知道如何接近这个问题。

感谢阅读:)

1 个答案:

答案 0 :(得分:1)

问题要求您解释基于n对f进行多少次调用。说“定义递归关系”的部分实际上是对你答案的暗示。

所以你的答案看起来像是:

Let T(x) be the function which defines the number of calls to compute f(x)

Then:

T(n) = { something using T and values less than n }

如果你想弄明白这一点 - 停在这里,Spoilers跟随(所以你的问题完全得到了解答)。

----------------------------------  Spoiler -------------------------------





n=1: T(1) = 1
n=2: T(2) = 1
n>2: T(n) = 1 + T(n - 1) + T(n - 2) 





--------------------------------- End Spoiler ------------------------------