Secuencia de Fibonacci en Ruby
Presentaremos la secuencia de Fibonacci en Ruby con ejemplos.
Secuencia de Fibonacci en Ruby
Es posible que necesitemos obtener un rango de secuencias de Fibonacci, o es posible que deseemos obtener la secuencia de Fibonacci hasta un número específico. Podemos usar Ruby para obtener la secuencia de Fibonacci de cualquier número de términos.
La secuencia de Fibonacci es una secuencia de números donde el número actual es la suma de los dos números anteriores. Por ejemplo, la sucesión de Fibonacci hasta 10
términos es: 1, 1, 2, 3, 5, 8, 13, 21, 34, 55
.
Observe que el último número, 55
, es la suma de 21
y 34
, y los otros números de la secuencia son, de manera similar, la suma de los dos números anteriores.
Analicemos la sucesión de Fibonacci con un ejemplo en el que definiremos los dos primeros números de la sucesión de Fibonacci e intentaremos obtener el resto de los números cinco veces.
firstNum = 0
secondNum = 2
Obtendremos la secuencia de Fibonacci de los siguientes 5 números usando un bucle.
firstNum = 0
secondNum = 2
5.times do
firstNum, secondNum = secondNum, firstNum + secondNum
puts firstNum
end
Producción:
El ejemplo anterior muestra que podemos obtener las secuencias de Fibonacci durante el mayor tiempo posible usando el bucle.
Ahora, creemos una función en Ruby que nos dará la secuencia de Fibonacci hasta cierto número. En primer lugar, definiremos la función.
Dentro de nuestra función, definiremos los primeros dos pasos de la secuencia de Fibonacci.
Ahora usaremos el bucle para obtener la secuencia de Fibonacci de un número que pasará un usuario. Como se muestra a continuación, ejecutaremos el bucle una vez menos que el número pasado.
def getFib(x)
firstNum, secondNum = [0, 1]
(x - 1).times do
firstNum, secondNum = secondNum, firstNum + secondNum
puts firstNum
end
end
getFib(19)
Producción:
Como puede ver en el ejemplo anterior, podemos obtener fácilmente la secuencia de Fibonacci de cualquier número creando una función y definiendo la secuencia de Fibonacci dentro de esa función.