計算函式呼叫次數
來看一個經典的遞迴範例——費波那契數列。它由非負整數組成,從 0 開始,每個元素 \(F(n)\) 等於前兩個元素的總和:0, 1, 1, 2, 3, 5, 8, 13, 21, ...。你拿到了一個函式,會回傳一個 tuple,內容是數列的第 \(n\) 個元素,以及在運算過程中呼叫 fib() 的次數:
def fib(n):
if n < 2:
return (n, 1)
fib1 = fib(n-1)
fib2 = fib(n-2)
return (fib1[0] + fib2[0], fib1[1] + fib2[1] + 1)
要計算此數列的第 \(15^{th}\) 與第 \(20^{th}\) 個元素,共需要呼叫 fib() 幾次?
本練習屬於課程
