Secuencia de Fibonacci en Python

Manav Narula 30 enero 2023
  1. Utilice la fórmula matemática para crear una secuencia de Fibonacci en Python
  2. Utilice el bucle for para crear una secuencia de Fibonacci en Python
  3. Utilice una función recursiva para crear una secuencia de Fibonacci en Python
  4. Utilice el método de programación dinámica para crear una secuencia de Fibonacci en Python
Secuencia de Fibonacci en Python

La secuencia de Fibonacci es una serie común y de uso frecuente en matemáticas. Se muestra a continuación.

0,1,1,2,3,5,8,13,21,34,55,89,144,229....

El siguiente número en la secuencia de Fibonacci es la suma de los dos números anteriores y se puede mostrar matemáticamente como Fn = Fn-1 + Fn-2.

El primer y segundo elementos de la serie son 0 y 1, respectivamente.

En este tutorial, discutiremos cómo crear una secuencia de este tipo en Python.

Utilice la fórmula matemática para crear una secuencia de Fibonacci en Python

Cada elemento de una secuencia de Fibonacci se puede representar mediante la siguiente fórmula matemática.

Ecuación de Fibonacci

Podemos implementar esta fórmula en Python para encontrar la serie hasta el número requerido e imprimir la secuencia. El siguiente código muestra cómo.

from math import sqrt


def F(n):
    return ((1 + sqrt(5)) ** n - (1 - sqrt(5)) ** n) / (2 ** n * sqrt(5))


def Fibonacci(startNumber, endNumber):
    n = 0
    cur = F(n)
    while cur <= endNumber:
        if startNumber <= cur:
            print(cur)
        n += 1
        cur = F(n)


Fibonacci(1, 100)

Producción :

1.0
1.0
2.0
3.0000000000000004
5.000000000000001
8.000000000000002
13.000000000000002
21.000000000000004
34.00000000000001
55.000000000000014
89.00000000000003

La función Fibonacci() calcula el número de Fibonacci en alguna posición en una secuencia especificada por el número inicial y final.

Utilice el bucle for para crear una secuencia de Fibonacci en Python

Crearemos una función usando el bucle for para implementar la serie requerida. En este método, imprimiremos una secuencia de una longitud requerida. Solo usaremos el bucle for para iterar hasta la longitud requerida y alterar las variables requeridas en cada iteración. El siguiente código explica cómo:

def fibonacci_iter(n):
    a = 1
    b = 1
    if n == 1:
        print("0")
    elif n == 2:
        print("0", "1")
    else:
        print("0")
        print(a)
        print(b)
        for i in range(n - 3):
            total = a + b
            b = a
            a = total
            print(total)


fibonacci_iter(8)

Producción :

0
1
1
2
3
5
8
13

Utilice una función recursiva para crear una secuencia de Fibonacci en Python

Una función recursiva es una función que se llama a sí misma, y ​​tales métodos pueden reducir la complejidad del tiempo pero usan más memoria. Podemos crear una función de este tipo para devolver el Número de Fibonacci e imprimir la serie requerida usando un bucle for.

Por ejemplo,

def rec_fib(n):
    if n > 1:
        return rec_fib(n - 1) + rec_fib(n - 2)
    return n


for i in range(10):
    print(rec_fib(i))

Producción :

0
1
1
2
3
5
8
13
21
34

Utilice el método de programación dinámica para crear una secuencia de Fibonacci en Python

La programación dinámica es un método en el que dividimos los problemas en subproblemas y almacenamos los valores de estos subproblemas para encontrar soluciones. Este método se usa generalmente para optimizar problemas y se puede usar para generar la secuencia de Fibonacci como se muestra a continuación:

def fibonacci(num):
    arr = [0, 1]
    if num == 1:
        print("0")
    elif num == 2:
        print("[0,", "1]")
    else:
        while len(arr) < num:
            arr.append(0)
        if num == 0 or num == 1:
            return 1
        else:
            arr[0] = 0
            arr[1] = 1
            for i in range(2, num):
                arr[i] = arr[i - 1] + arr[i - 2]
            print(arr)


fibonacci(10)

Producción :

[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]

Tenga en cuenta que la secuencia se almacena en un array en este método.

Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

Artículo relacionado - Python Math