Categorías: Tutoriales

Recursividad con Fibonacci – Curso Octave

NOTA: este tutorial es parte del curso de Octave de Linux Hispano.

La recursividad es un concepto básico en programación y uno de los problemas clásicos que se enseñan es calcular la sucesión de Fibonacci. Recordad que la sucesión de Fibonacci es la sucesión de números donde cada número se calcula sumando los dos anteriores a él.

Os voy a proponer un pequeño ejercicio a resolver. Más adelante tenéis la solución pero en un principio me gustaría que lo intentáseis por vosotros mismos.

El ejercicio es el siguiente: Crea una función, fibonacci.m, que reciba un número entero n y que devuelva la sucesión n del número de Fibonacci.

Y ésta es la solución:

function fib = fibonacci(n)

if n == 0
    fib = 0;
    return;
end

if n < 0
    fib = (-1)^(n+1) * fibonacci(-n);
    return;
end

alpha = (1 + sqrt(5))/2;
fib = round( alpha^n / sqrt(5) );

end
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

  • No veo la recursividad en el código del post... si n < 0 se realiza una única llamada recursiva. Esta implementación es más eficiente, pero yo no la llamaría recursiva, de hecho alterando el orden del código y añadiendo una variable eliminarías la única llamada recursiva.

    El código recursivo (muy ineficiente) para la sucesión de fibonacci para números naturales sería la siguiente:

    function fib = fibonacci(n)

    if n < 2
    fib = n;
    return;
    end

    fib = fibonacci(n-1) + fibonacci(n-2)

    end

    • Gracias por tu aportación, Anónimo.

      Es cierto que la implementación propuesta es más efectiva pero la tuya es más didáctica ya que hace recursividad una y otra vez hasta dar con la solución.

      Espero que el usuario escoja la que más le convenga.

      Y repito, gracias por tu comentario.

Compartir
Publicado por
Manuel Ignacio López Quintero

Entradas recientes

DeepSeek

2 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