#22

再帰:フィボナッチ数列

前の2つの数を足して次を作る数列を再帰で求めます。

解説

フィボナッチ数列は、最初の2項が 0, 1 で、それ以降は直前の2つの和になる数列です。0, 1, 1, 2, 3, 5, 8, 13 … と続きます。 定義をそのまま再帰にできます。 - fib(n) = fib(n-1) + fib(n-2) - fib(0) = 0, fib(1) = 1(ベースケースが2つ必要) 1回の呼び出しが2回呼び出す「二重再帰」で、計算の枝が木のように広がります。分かりやすい一方、nが大きいと同じ計算を繰り返すため遅くなる注意点も学べます。

書き方

二重再帰: fib(n) = fib(n-1) + fib(n-2)。
・ベースケースは2つ: fib(0)=0, fib(1)=1。
・n が大きいと同じ計算を繰り返し遅くなる。

書いて動かす

この回の課題

フィボナッチを再帰で定義し、0〜9 番目の数列をリストにまとめて表示してみよう。

コードはあなたの端末の中だけで動きます(サーバーには送られません)。進み具合もこのブラウザに保存されます。

自分のPCでも続けてみませんか

Windows版 InsightPy は Python を同梱しているので、環境構築なしで同じコードを書いて実行できます。 書いたコードを保存しておけるほか、ステップ実行で変数の変化を1行ずつ確かめられます。 個人の学習や私的な目的でのご利用は、31日目以降も無料です(スクリプトの保存は10本まで)。 このブラウザ版の学習センターも、引き続き無料でお使いいただけます。