2013-03-16 59 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