Рубрики
Без рубрики

Фибоначчи серии в Python с использованием рекурсии

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