Fibonacci recursivo y con ciclos en Ruby

Sucesión fibonacci con recursividad y ciclos en Ruby

Siguiendo con los algoritmos y ejercicios resueltos en Ruby, vamos a ver hoy cómo obtener el número fibonacci que va en determinada posición.

Fibonacci recursivo y con ciclos en Ruby
Fibonacci recursivo y con ciclos en Ruby

Por ejemplo, el número de la sucesión fibonacci que va en la posición 7 (recordemos que comienza desde cero) es el 13, pues la sucesión va así:

0, 1, 1, 2, 3, 5, 8, 13

Lo que haremos con Ruby será recibir un número y regresar el número fibonacci que va en esa posición; lo haremos de forma recursiva y también usando ciclos.

Nota: las funciones no imprimen la sucesión, pero basta con que dentro de cada una de ellas se imprima el valor con puts y listo, la sucesión será impresa.

El algoritmo para obtener la sucesión fibonacci en Ruby

Se comienza en 0 y en 1, y luego, el siguiente valor es la suma de los dos anteriores. Con Ruby no se necesita una variable temporal, pues se puede hacer así:

siguiente, actual = siguiente + actual, siguiente

El ciclo se repite hasta que se alcance la posición, y se regresa el valor que esté en actual.

Fibonacci con ciclos en Ruby

Aquí está la implementación con lo que vendría siendo un ciclo for en otros lenguajes de programación:

=begin
	Sucesión de fibonacci con ciclos
	en Ruby

	@author parzibyte
=end
def fibonacci(posicion)
	siguiente = 1
	actual = 0
	(1..posicion).each do
		# Si quieres imprimir la sucesión, simplemente descomenta lo siguiente:
		#puts actual
		siguiente, actual = siguiente + actual, siguiente
	end
	actual
end

Al final se regresa el valor actual, aunque no está la palabra reservada return, es la última expresión de la función y por lo tanto es lo que se regresa.

Fibonacci recursivo con Ruby

En este caso utilicé la fórmula que estaba en Wikipedia, la cual usa recursividad:

=begin
	Sucesión de fibonacci utilizando
	recursividad en Ruby

	@author parzibyte
=end

def fibonacci_recursivo(posicion)
	if posicion < 2
		return posicion
	end
	return fibonacci_recursivo(posicion - 1) + fibonacci_recursivo(posicion - 2)
end

Forma de llamar a las funciones

Para llamarlas simplemente escribe:

fibonacci numero

Por ejemplo, fibonacci 5

También se puede llamar a la función y asignar el resultado a una variable:

numero = fibonacci 5

Descargar ejercicios

Eres libre de descargar el código fuente. Para ello, ponlo en un archivo con extensión rb, asegúrate de tener instalado Ruby, navega hasta la terminal y ejecuta:

ruby archivo.rb

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.

Dejar un comentario

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