Fibonacci en Python

La serie de fibonacci en Python tiene dos versiones principales como en cualquier otro lenguaje, una versión iterativa y otra recursiva.

La serie de Fibonacci es una sucesión infinita de números naturales. La sucesión se basa en que cada término es la suma de los dos anteriores, esa es la relación de recurrencia que la define.

Inicio de la sucesión de fibonacci

Versión Iterativa

La versión iterativa de la sucesión de fibonacci se realiza con un bucle, en nuestro caso hemos elegido un bucle for. El algoritmo se puede ver en el siguiente código:

def fib_i(n):
    a, b = 0, 1
    while n > 0:
        a, b = b, a + b
        n -= 1
    return a

La función recibe un número que, será el límite de la sucesión.

Si queremos calcular el número final bastará con ejecutar la función con el límite que queramos:

print(fib_i(8))

En el caso de que queramos ver la sucesión completa hasta el límite establecido podemos hacerlo de la siguiente forma:

for i in range(8):
    print(fib_i(i),end=' ')

Versión Recursiva

La segunda opción para implementar la sucesión de fibonacci en Python es de forma recursiva. Esta implementación es más compleja de entender, pero más eficiente cuando realizamos cálculos grandes.

La implementación se puede ver a continuación:

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

La ejecución de la función es exactamente igual que en el caso anterior, por lo tanto podemos de las dos formas vistas, pero poniendo el nombre de la función recursiva.

Deja un comentario