Categorías: Tutoriales

Fibonacci recursivo en Python

La recursividad es un concepto importante en programación y es fundamental conocerlo, un ejemplo que se usa mucho es con Fibonacci. Ésta es una implementación para calcular el orden de Fibonacci mediante recursividad en Python:

#!/usr/bin/env python

def fib(n):
    if n == 0:
        return 0
    if n == 1:
        return 1
    return fib(n-1) + fib(n-2)

if __name__ == '__main__':
    fibonacci = fib(10)
    print('Fibonacci de orden 10:')
    print(fibonacci)

Si tienes otra propuesta o alternativa será bien agradecida. ¡Participa y comenta!

Manuel Ignacio López Quintero

Doctor en Ingeniería Informática especializado en Sistemas Inteligentes y Visión Artificial. Profesor y coadministrador de Linux Hispano. Para más información o para contactar con él visita su página oficial: Manuel Ignacio López Quintero.

Ver comentarios

  • Matematicamente es un concepto muy importante, pero siempre he pensado que la recursividad hay que evitarla a toda consta en informática y no se porque no la eliminan ya de la didáctica, solo hace una pila de llamada a funciones que consume memoria y realentiza,

    fibbonacci por ejemplo iterativamente con tres variables es mucho mas efectivo si queires calcular el termino enemilesimo con con rercursividad reza...

    otro fallo es como tratan la recursividad, que piensan que es una definicion que se contiene a si misma, cuando no es asi, esta el caso base que es lo externo a la definicion, no se si es porque los profesores no hacen insistencia o que, pero veo muchos informaticos que no llegan a entender lo que es la recursividad, un ejemplo de lo que digo se nota en sus chistes, todos se basan en lo mismo, olvidar (o no entender) que la recursividad contiene un caso base

    • El fallo de la enseñanza de la informática es que no se enseñe programación funcional, si no tendrías muy claro qué sólo con recursividad se pueden implementar algunos algoritmos de aprendizaje. Con versiones iterativas no tendrías memoria suficiente. Y no, ni tiene porqué consumir más memoria, ni ser más lento. Python no optimiza las funciones recursivas finales, pero otros lenguajes sí que lo hacen (eg: scala).

  • Según entiendo y recuerdo yo:
    De lo más importante son los casos bases, y que siempre se lleguen a esos casos bases, ya que sino entraríamos en un bucle infinito.

    No todas las recursividades son buenas, ya que a veces es mejor hacer un algoritmo iterativo en vez de uno recursivo

Compartir
Publicado por
Manuel Ignacio López Quintero

Entradas recientes

DeepSeek

3 días hace

Contacto

2 semanas hace

Smart-tv mute

2 semanas hace

STEAM OS

3 semanas hace

2025

1 mes hace

El podcast de Linux Hispano – #072 – El hardware libre debe consolidarse como el software libre

https://www.youtube.com/embed/z-xGk9c_eOw Guionista y locutor: Manuel Ignacio López Quintero.Fecha de publicación: 31 de diciembre de 2024.

1 mes hace