Saltar al contenido
Portada » Secuencia de Fibonacci en Python

Secuencia de Fibonacci en Python

La secuencia de Fibonacci es una famosa serie de números en la que cada número es la suma de los dos anteriores, comenzando con 0 y 1. En este artículo, aprenderás a generar la secuencia de Fibonacci en Python utilizando diferentes enfoques.

1. Generar la secuencia de Fibonacci usando un bucle

Una de las formas más simples de generar la secuencia de Fibonacci es utilizando un bucle for. A continuación, se muestra cómo hacerlo.


def fibonacci(n):
    secuencia = [0, 1]
    for i in range(2, n):
        siguiente = secuencia[-1] + secuencia[-2]
        secuencia.append(siguiente)
    return secuencia

# Generar los primeros 10 números de Fibonacci
print(fibonacci(10))  # Output: [0, 1, 1, 2, 3, 5, 8, 13, 21, 34]

En este ejemplo, la función fibonacci genera una lista con los primeros n números de la secuencia de Fibonacci. Se inicia la lista con 0 y 1, y luego se calcula cada número sumando los dos anteriores.

2. Generar la secuencia de Fibonacci usando recursión

La recursión es otra forma de generar la secuencia de Fibonacci. Este enfoque es más elegante, pero puede ser menos eficiente para grandes valores de n.


def fibonacci_recursivo(n):
    if n <= 1:
        return n
    else:
        return fibonacci_recursivo(n-1) + fibonacci_recursivo(n-2)

# Imprimir los primeros 10 números de Fibonacci
for i in range(10):
    print(fibonacci_recursivo(i))

En este código, la función fibonacci_recursivo llama a sí misma para calcular los números de Fibonacci. Este método es directo, pero puede ser ineficiente debido a las múltiples llamadas recursivas.

3. Generar la secuencia de Fibonacci usando programación dinámica

La programación dinámica es una técnica que almacena resultados intermedios para evitar cálculos repetidos, haciendo que la generación de Fibonacci sea más eficiente.


def fibonacci_dinamico(n):
    memo = [0, 1]
    for i in range(2, n):
        memo.append(memo[i-1] + memo[i-2])
    return memo

# Generar los primeros 10 números de Fibonacci
print(fibonacci_dinamico(10))  # Output: [0, 1, 1, 2, 3, 5, 8, 13, 21, 34]

En este ejemplo, se utiliza una lista memo para almacenar los resultados de Fibonacci ya calculados, evitando la repetición de cálculos y mejorando la eficiencia.

4. Generar la secuencia de Fibonacci usando un generador

Los generadores en Python permiten crear iteradores de manera eficiente y son útiles para generar secuencias grandes de Fibonacci sin necesidad de almacenar todos los valores en memoria.


def fibonacci_generador():
    a, b = 0, 1
    while True:
        yield a
        a, b = b, a + b

# Imprimir los primeros 10 números de Fibonacci
fibo_gen = fibonacci_generador()
for _ in range(10):
    print(next(fibo_gen))

Aquí, fibonacci_generador es una función generadora que produce un número de Fibonacci cada vez que se llama next(). Este enfoque es eficiente en memoria y se adapta bien a secuencias muy largas.

Conclusión

La secuencia de Fibonacci se puede generar en Python de diversas maneras, dependiendo de tus necesidades y el tamaño de la secuencia. Puedes optar por un bucle simple, recursión, programación dinámica o generadores. Cada enfoque tiene sus ventajas y desventajas, por lo que es importante elegir el adecuado para tu situación. Con estas herramientas, estarás listo para trabajar con la secuencia de Fibonacci en tus proyectos de Python.

Deja una respuesta

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