フィボナッチ数列は、前の2つの数の和が次の数になる数列です。例えば、0, 1, 1, 2, 3, 5, 8, 13, 21, ...と続きます。ここでは、N項のフィボナッチ数列を求めるいくつかの方法とコード例を紹介します。
- 反復を使った方法: フィボナッチ数列は反復的な性質を持っているため、ループを使って効率的に計算することができます。以下は反復を使った方法のコード例です。
def fibonacci_iterative(n):
if n <= 0:
return []
elif n == 1:
return [0]
elif n == 2:
return [0, 1]
fib_seq = [0, 1]
for i in range(2, n):
fib_seq.append(fib_seq[i-1] + fib_seq[i-2])
return fib_seq
- 再帰を使った方法: フィボナッチ数列は再帰的な性質を持つため、再帰関数を使って計算することもできます。以下は再帰を使った方法のコード例です。
def fibonacci_recursive(n):
if n <= 0:
return []
elif n == 1:
return [0]
elif n == 2:
return [0, 1]
fib_seq = fibonacci_recursive(n - 1)
fib_seq.append(fib_seq[-1] + fib_seq[-2])
return fib_seq
- 動的計画法を使った方法: 動的計画法を使うと、計算済みの値を保存して再利用することができます。これにより、再帰のオーバーヘッドを削減することができます。以下は動的計画法を使った方法のコード例です。
def fibonacci_dynamic(n):
if n <= 0:
return []
elif n == 1:
return [0]
elif n == 2:
return [0, 1]
fib_seq = [0, 1]
for i in range(2, n):
fib_seq.append(fib_seq[i-1] + fib_seq[i-2])
return fib_seq
これらの方法は、異なるアプローチでフィボナッチ数列を計算するためのコード例です。選択する方法は、特定の要件や制約に応じて異なる場合があります。