関数呼び出し回数を数える
再帰の代表例としてフィボナッチ数列を考えましょう。0 から始まる非負整数の数列で、各要素 \(F(n)\) は直前の2つの和になります:0, 1, 1, 2, 3, 5, 8, 13, 21, ...。次の関数は、数列の \(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() の呼び出しがそれぞれ何回必要になりますか?
この演習はコースの一部です
