Автор оригинала: 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 с использованием метода рекурсии.