Автор оригинала: Python Examples.
Фибоначчи серии в Python с использованием рекурсии
В этом руководстве мы представляем вам два способа вычислить серии Fibonacci, используя рекурсию в Python.
Первый способ – это рода грубой силы. Второй способ пытается уменьшить вызовы функций в рекурсии.
Преимущество рекурсии состоит в том, что программа становится выразительной.
Пример 1. Генерация серии Fibonacci с использованием рекурсии в Python
В этом примере мы пишем функцию, которая вычисляет N Элемент серии фибоначчи с использованием рекурсии.
Python Program
def fibonacci(n):
if n<=1:
return n
else:
return(fibonacci(n-1) + fibonacci(n-2))
n = int(input('Enter a number, N, N>=2 : '))
fibo_series = []
for i in range(0,n):
fibo_series.append(fibonacci(i))
print(fibo_series)Выход
D:\>python example.py Enter a number, N, N>=2 : 10 [0, 1, 1, 2, 3, 5, 8, 13, 21, 34] D:\>python example.py Enter a number, N, N>=2 : 5 [0, 1, 1, 2, 3]
О выступлении
Если вы считаете производительность, это ошибка. Почему? Вот причина. Позволяет отключить обсуждение создания стека для каждого вызова функции внутри функции. Когда вы рассчитываете N Элемент Фибоначчи, все элементы фибоначчи до N Этот элемент должен быть рассчитан снова, независимо от того, что мы уже их рассчитали.
Пример 2: Создание серии Fibonacci с использованием рекурсии в Python [Imprised]
В этом примере мы считаем тот факт, что предыдущее 0, 1, 2,. , Я-1 Элементы уже рассчитаны, когда вы генерируете Я Т-й элемент.
Python Program
fibo_series = [0, 1]
def fibonacci(n):
if n<=len(fibo_series) and n>0:
return fibo_series[n-1]
else:
fn = fibonacci(n-1) + fibonacci(n-2)
if n>len(fibo_series):
fibo_series.append(fn)
return fn
n = int(input('Enter a number, N, N>=2 : '))
fibonacci(n)
print(fibo_series)Выход
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
Резюме
В этом руководстве примеров Python мы узнали, как генерировать серию Fibonacci в Python с использованием метода рекурсии.