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.
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.
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
.
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.
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
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
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
El día de hoy te mostraré cómo crear un servidor HTTP (servidor web) en Android…
En este post te voy a enseñar a designar una carpeta para imprimir todos los…
En este artículo te voy a enseñar la guía para imprimir en una impresora térmica…
Hoy te voy a mostrar un ejemplo de programación para agregar un módulo de tasa…
Los usuarios del plugin para impresoras térmicas pueden contratar licencias, y en ocasiones me han…
Hoy voy a enseñarte cómo imprimir el € en una impresora térmica. Vamos a ver…
Esta web usa cookies.