Logotipo de Zephyrnet

Serie de Fibonacci en Python | Algoritmos, códigos y más

Fecha:

En Matemáticas, la Serie de Fibonacci es una secuencia de números tal que cada número de la serie es una suma de los números precedentes. La serie comienza con 0 y 1. Este blog nos enseñará cómo crear la serie de Fibonacci en Python usando un bucle, recursividad y programación dinámica.

  1. ¿Qué es la serie de Fibonacci?
  2. Lógica de la serie de Fibonacci
  3. Fórmula de la serie de Fibonacci
  4. Espiral de Fibonacci
  5. Algoritmo de la serie de Fibonacci
  6. Serie de Fibonacci en Python
    a. Serie de Fibonacci con bucle
    b. Serie de Fibonacci usando recursividad
    c. Series de Fibonacci usando Programación Dinámica
  7. Preguntas Frecuentes

Leonardo Pisano Bogollo fue un matemático italiano de la República de Pisa y fue considerado el matemático occidental más talentoso de la Edad Media. Vivió entre 1170 y 1250 en Italia. "Fibonacci" era su apodo, que significa "Hijo de Bonacci". Fibonacci no fue el primero en conocer la secuencia, ¡y se conocía en la India cientos de años antes!

¿Qué es la serie de Fibonacci?

La serie de Fibonacci es un patrón de números donde cada número resulta de sumando los dos últimos números consecutivos. Los primeros 2 números comienzan con 0 y 1, y el tercer número en la secuencia es 0+1=1. El cuarto número es la suma del segundo y tercer número, es decir, 4+2=3, y así sucesivamente.
La sucesión de Fibonacci es la serie de números:
0, 1, 1, 2, 3, 5, 8, 13, 21, 34,…

Serie de fibonacci en python

La lógica de la serie de Fibonacci

El siguiente número es la suma de los dos números anteriores.
El tercer elemento es (3+1) = 0
El cuarto elemento es (4+1) = 1
El cuarto elemento es (5+2) = 1

Fórmula de la serie de Fibonacci

Por lo tanto, la fórmula para calcular la serie es la siguiente:
xn = xn-1 +xn-2 ; dónde
xn es el término número "n"
xn-1 es el término anterior (n-1)
xn-2 es el término antes de eso

Espiral de Fibonacci

Una propiedad interesante de estos números es que obtenemos una espiral cuando hacemos cuadrados con estos anchos. Una espiral de Fibonacci es un patrón de cuartos de círculo conectados dentro de un bloque de cuadrados con números de Fibonacci escritos en cada uno de los bloques. El número en el cuadrado gigante es la suma de los siguientes 2 cuadrados más pequeños. Este es un arreglo perfecto donde cada bloque se denota con un número más alto que los dos bloques anteriores. La idea principal se ha derivado del patrón logarítmico, que también se ve similar. Estos números también están relacionados con la proporción áurea.

Serie de Fibonacci
Serie de Fibonacci

Aprenda a encontrar si una cadena es un palíndromo en Python

Algoritmo de la serie de Fibonacci

[Contenido incrustado]

Enfoque iterativo

  • Inicializa las variables a,b a 1
  • Inicializar for loop en rango[1,n) # n exclusivo
  • Calcular el siguiente número en serie; totales = a+b
  • Almacenar valor anterior en b
  • Almacene el total en un

Enfoque recursivo

  • Si n es igual a 1 o 0; volver 1
  • De lo contrario, devuelve fib (n-1) + fib (n-2)

Enfoque de programación dinámica

  • Inicialice una matriz arr de tamaño n a ceros
  • Si n es igual a 0 o 1; volver 1 Más
  • Inicializar arr[0] y arr[1] a 1
  • Ejecutar bucle for en rango[2,num]
  • Calcule el valor arr[I]=arr[I-1] +arr[I-2]
  • La matriz tiene la secuencia calculada hasta n

Por lo tanto, la solución sería calcular el valor una vez y almacenarlo en una matriz desde donde se pueda acceder la próxima vez que se requiera. Por lo tanto, usamos programación dinámica en tales casos. Las condiciones para implementar la programación dinámica son
1. subproblemas superpuestos
2. subestructura óptima

Enfoque iterativo

def fib_iter(n):
    a=1
    b=1
    if n==1:
        print('0')
    elif n==2:
        print('0','1')
    else:
        print("Iterative Approach: ", end=' ')
        print('0',a,b,end=' ')
        for i in range(n-3):
            total = a + b
            b=a
            a= total
            print(total,end=' ')
        print()
        return b
        
fib_iter(5)

PRUEBA EL CÓDIGO

Salida: Enfoque iterativo: 0 1 1 2 3

Enfoque recursivo

def fib_rec(n):
    if n == 1:
        return [0]
    elif n == 2:
        return [0,1]
    else:
        x = fib_rec(n-1)
        # the new element the sum of the last two elements
        x.append(sum(x[:-3:-1]))
        return x
x=fib_rec(5)
print(x)

PRUEBA EL CÓDIGO

Salida – 0, 1, 1, 2, 3

Enfoque de programación dinámica

There is a slight modification to the iterative approach. We use an additional array.

def fib_dp(num):
    arr = [0,1]
    print("Dynamic Programming Approach: ",end= ' ')
    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)    
            return arr[num-2]
fib_dp(5)

PRUEBA EL CÓDIGO

Salida – 0, 1, 1, 2, 3

Si te ha resultado útil este blog, aprender sobre inteligencia artificial y poder avanzar en su carrera. Aprenda de los mejores de la industria y obtenga acceso a sesiones de tutoría y asistencia profesional.

Preguntas Frecuentes

¿Cuáles son las propiedades de la serie de Fibonacci?

La serie de Fibonacci tiene varias propiedades, entre ellas:
-Cada número de la serie es la suma de los dos números anteriores.
-Los dos primeros números de la serie son 0 y 1.

¿Cuáles son algunas aplicaciones de la serie de Fibonacci?

La serie de Fibonacci tiene varias aplicaciones, entre ellas:
-Se puede utilizar para modelar el crecimiento de poblaciones de animales.
-Se puede usar para calcular la Proporción Dorada, que se usa en arquitectura y arte.
-Se puede utilizar en la programación de computadoras para generar algoritmos eficientes.

¿Cuál es la complejidad temporal de generar la serie de Fibonacci?

La complejidad temporal de generar la serie de Fibonacci es O(n).

¿Cuál es la complejidad espacial de almacenar la serie de Fibonacci?

La serie de Fibonacci es una secuencia infinita, por lo que la complejidad del espacio es infinita.

OTRAS LECTURAS

  1. Factorial de un número en Python
  2. Palíndromo en Python
  3. Convertir lista a cadena en Python
  4. Función de evaluación en Python
punto_img

Información más reciente

punto_img

Habla con nosotros!

¡Hola! ¿Le puedo ayudar en algo?