2013-03-16 54 views
1

在蟒蛇,对于返回n个斐波纳契数斐波纳契数列的递归函数可以写为:递归斐波那契函数是如何导出的?

def fib(n): 
    if n == 1: 
     return 0 
    if n == 2: 
     return 1 
    return fib(n-2) + fib(n-1) 

我明白这个功能是如何工作的,但如果有人之前,怎么从来没见过这个功能会有人得出它吗?

谢谢

+0

首先声明也许应该是'如果n <= 1'这样的功能是一个比较稳健的,不进入无限递归数<= 0 – Omnifarious 2013-03-16 09:02:31

回答

5

这只是斐波那契数列定义的粗略翻译。

Fibonacci序列被定义为:

˚F = 0

˚F = 1

˚FÑ = F n-1个 + F n-2

你可以看到,Python代码基本上是这样的直接翻译(除了n关闭的1)。

+0

我明白了。我正在哑巴哈哈。谢谢!! – Edasaur 2013-03-16 09:08:26