Programa de Python para el n-ésimo número de Fibonacci

En términos matemáticos, la secuencia Fn de los números de Fibonacci está definida por la relación de recurrencia 

Fn = Fn-1 + Fn-2

Con valores semilla 

F0 = 0 and F1 = 1.

Método 1 (usar recursividad):

Python3

# 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
Producción

34

Método 2 (usar programación dinámica): 

Python3

# 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
Producción

21

Producción: 

21

Método 3 (Usar Programación Dinámica con Optimización de Espacio): 

Python3

# 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
Producción

21

Producción: 

21

Método 4 (usando arreglos): 

Python3

# 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)

Producción :

144

Explicación:

[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144]
Como sabemos que la serie de Fibonacci es la suma de los dos términos anteriores, entonces si ingresamos 12 como el entrada en el programa, por lo que deberíamos obtener 144 como salida. Y ese es el resultado. 

Método 5 (usando la fórmula directa): 

La fórmula para encontrar el n-ésimo número de Fibonacci es la siguiente:

\normalsize Fibonacci\ number\ F_n\\ (1)\ F_n=F_{n-1}+F_{n-2},\hspace{5px} F_1=1,\ F_2=1\\ (2)\ F_n={\large\frac{(1+\sqrt5)^n-(1-\sqrt5)^n}{2^n\sqrt5}}\\

Python3

# 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
Producción

144 is 12th fibonacci number

¡ Consulte el artículo completo sobre Programa para números de Fibonacci para obtener más detalles!
 

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *