Pythonの再帰関数を使ってフィボナッチ数列をコーディングしてみる

プログラミング
スポンサーリンク

スポンサーリンク

はじめに

こんにちは。将棋と筋トレが好きな、学生エンジニアのゆうき(@engieerblog_Yu)です。

エンジニアを志望している方は、コーディングテストなどでフィボナッチ数列が問われることが多いのではないでしょうか?

今回はコーディングテストにも問われがちな、フィボナッチ数列をコーディングしていきたいと思います。

フィボナッチ数列の定義

まずはフィボナッチ数列の定義についてです。

f(0) = 0

f(1) = 1

f(n) = f(n-1) + f(n-2)

上記の条件を満たすフィボナッチ数列を出力してみましょう。

コーディング

以下が実装部分です。

def fib(n):
  if n <= 1:
    return n

  return fib(n-1) + fib(n-2)

フィボナッチ数列を10項まで出力していきたいと思います。

for i in map(fib, range(10)):
    print(i)

output:

0
1
1
2
3
5
8
13
21
34

コーディングのコツ

数列の漸化式が使われているので、漸化式を使うことができそう

関数の返り値を順に出力するためにmap関数を使う

上記のことに気づくことができると、比較的楽にコーディングを行うことができると思います。

終わりに

今回紹介した方法以外にも、たくさんの方法があります。

より簡潔に、少ない計算量で、という観点で考えると、今回紹介したコードが最も良いという訳ではありません。

今回はどちらかというと簡潔さを重要視したコードだったので、より計算量を削減することができるコードを書いてみるのも良いと思います。

コメント

タイトルとURLをコピーしました