You are currently viewing Программа на Python для n-го числа Фибоначчи

Программа на Python для n-го числа Фибоначчи

В математических терминах последовательность Fn чисел Фибоначчи определяется рекуррентным соотношением

Fn = Fn-1 + Fn-2

С начальными значениями

F0 = 0 и F1 = 1.

Способ 1 ( Используйте рекурсию ) :

# Function for nth Fibonacci number

def Fibonacci(n):
	if n<= 0:
		print("Incorrect input")
	# First Fibonacci number is 0
	elif n == 1:
		return 0
	# Second Fibonacci number is 1
	elif n == 2:
		return 1
	else:
		return Fibonacci(n-1)+Fibonacci(n-2)

# Driver Program

print(Fibonacci(10))

# This code is contributed by Saket Modi

Выход:

34

Метод 2 ( Используйте Динамическое программирование ) :

# Function for nth fibonacci number - Dynamic Programming
# Taking 1st two fibonacci numbers as 0 and 1

FibArray = [0, 1]

def fibonacci(n):
	if n<0:
		print("Incorrect input")
	elif n<= len(FibArray):
		return FibArray[n-1]
	else:
		temp_fib = fibonacci(n-1)+fibonacci(n-2)
		FibArray.append(temp_fib)
		return temp_fib

# Driver Program

print(fibonacci(9))

# This code is contributed by Saket Modi

Выход:

21

Метод 3 ( Используйте динамическое программирование с оптимизацией пространства) :

# Function for nth fibonacci number - Space Optimisation
# Taking 1st two fibonacci numbers as 0 and 1

def fibonacci(n):
	a = 0
	b = 1
	if n < 0:
		print("Incorrect input")
	elif n == 0:
		return a
	elif n == 1:
		return b
	else:
		for i in range(2, n):
			c = a + b
			a = b
			b = c
		return b

# Driver Program

print(fibonacci(9))

# This code is contributed by Saket Modi

Выход:

21

Способ 4 ( С использованием Массивов ) :

# creating an array in the function to find the nth number in fibonacci series. [0, 1, 1, ...]

def fibonacci (n):
if n<= 0:
	return "Incorrect Output"
data = [0, 1]
if n > 2:
		for i in range (2, n):
			data.append(data[i-1] + data[i-2])
	return data[n-1]

# Driver Program

print(fibonacci(9))

# This Code is contributed by Prasun Parate (prasun_parate)

Выход :

144

Объяснение:

[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144]
как мы знаем, что у ряда Фибоначчи является суммой двух предыдущих терминов, так что если мы войдем в 12 в качестве входных данных в программу, так что мы должны вам 144 в качестве выходного. И вот что получается в результате.

Способ 5 ( С Использованием Прямой Формулы ) :

Формула для нахождения n-го числа Фибоначчи выглядит следующим образом:

# To find the n-th Fibonacci Number using formula
from math import sqrt
# import square-root method from math library
def nthFib(n):
	res = (((1+sqrt(5))**n)-((1-sqrt(5)))**n)/(2**n*sqrt(5))
	# compute the n-th fibonacci number
	print(int(res),'is',str(n)+'th fibonacci number')
	# format and print the number
	
# driver code
nthFib(12)

# This code is contributed by Kush Mehta

Выход:

144 is 12th fibonacci number