Python
 Computer >> コンピューター >  >> プログラミング >> Python

再帰を使ってフィボナッチ数列を表示するPythonプログラムの書き方

再帰(リカージョン)を利用してフィボナッチ数列を表示するには、自分自身を繰り返し呼び出すメソッドを定義します。このメソッドは、ベースケース(基本条件)に到達するまで再帰的に呼び出され続けます。

以下に、その実装例を示します。

サンプルコード

def fibonacci_recursion(my_val):
    if my_val <= 1:
        return my_val
    else:
        return(fibonacci_recursion(my_val-1) + fibonacci_recursion(my_val-2))

num_terms = 12

if num_terms <= 0:
    print("Enter a positive integer")
else:
    print("The fibonacci sequence is :")
    for i in range(num_terms):
        print(fibonacci_recursion(i))

出力結果

The fibonacci sequence is :
0
1
1
2
3
5
8
13
21
34
55
89

コードの解説

  • まず、引数として値を受け取る「fibonacci_recursion」という名前の関数を定義します。

  • 引数の値が1以下の場合は、その値をそのまま返します。これが再帰の終了条件(ベースケース)となります。

  • それ以外の場合は、同じ関数を引数を変えて再度呼び出し、ベースケースに到達するまで処理を繰り返します。

  • 表示したいフィボナッチ数列の項数を変数「num_terms」で定義します。

  • 項数が0以下の場合は正の整数の入力を促すメッセージを表示し、そうでなければforループを使って各項を順番に関数に渡し、結果をコンソールに出力します。

補足:再帰処理の注意点

このシンプルな再帰による実装は理解しやすい反面、同じ計算を何度も繰り返すため、項数が大きくなると処理時間が急激に増加します。計算量は指数オーダー(O(2^n))になるため、大きな数列を扱う場合はメモ化(キャッシュ)を活用したり、反復処理(ループ)による実装に切り替えると効率が大幅に向上します。

  1. PythonでN番目のフィボナッチ数を求める方法|再帰と動的計画法を解説

    この記事では、Pythonを使ってN番目のフィボナッチ数を計算する方法を解説します。 フィボナッチ数とは フィボナッチ数は、次の漸化式によって定義される数列です。 Fn = Fn-1 + Fn-2 初期値は F0 = 0、F1 = 1 となります。したがって、フィボナッチ数列の最初のいくつかの項は以下のようになります。 0, 1, 1, 2, 3, 5, 8, 13, ………… フィボナッチ数を求めるには、大きく分けて「再帰」と「動的計画法」の2つのアプローチがあります。それぞれの実装方法をPythonスクリプトで見ていきましょう。 方法1:再帰を使うアプローチ まずは最も直感的な再帰による実

  2. Pythonでフィボナッチ数列を出力する方法【初心者向けサンプルコード付き】

    フィボナッチ数列とは、各項が直前の2つの数の和になるという性質を持つ数列です。「1, 1, 2, 3, 5, 8, 13…」のように数字が並んでいくのが特徴です。この種の数列は、Pythonの繰り返し処理(ループ文)を使えば簡単に生成できます。 フィボナッチ数列を出力するサンプルコード 以下は、while文を使ってフィボナッチ数列の最初の10個の数値を出力するPythonプログラムです。 x=0 y=1 fibo=0 while fibo<10: fibo=fibo+1 z=x+y print(z) x,y=y,z 実行結果 上記のプログラムを実行すると、