Una de las series de números más populares que se utilizan como ejercicio de programación es la sucesión o Algoritmo Fibonacci. En este post, conocerás de qué se trata y de lo que consta esta sucesión de números.
¿Qué es el Algoritmo de Fibonacci (programación)?
La Sucesión o Algoritmo Fibonacci se caracteriza por el hecho de que cada número en ella es igual a la suma de los anteriores:
0, 1, 1, 2, 3, 5, 8, 13, 21…..
Es decir que:
(0+1=1 / 1+1=2 / 1+2=3 / 2+3=5 / 3+5=8 / 5+8=13 / 8+13=21 / 13+21=34…)
Así sucesivamente, hasta el infinito. Por regla, la sucesión de Fibonacci se escribe así:
n = n-1 + n-2.
Recursividad en Scala
Simplificando, la recursividad se da cuando una función tiene la característica de poder llamarse a sí misma dentro de sus instrucciones. Gracias a esto, se puede utilizar a nuestro favor la recursividad, en lugar de la iteracción para resolver determinados tipos de problemas.
Función Fibonacci recursiva en Scala

La función nos devolverá el número correspondiente al algoritmo Fibonacci en la posición ‘n’, para obtener este número tiene que calcular toda la serie, haciendo recursividad hacia atrás hasta llegar al caso base, en este caso tenemos dos casos base, uno si es cero nos devolverá 0, y si es uno, nos devolverá 1.
Estos son los dos primeros números de la sucesión, luego viene la parte recursiva que es el llamado a la suma de la función fibonacci de los dos números anteriores, o mejor dicho la suma de las dos números anteriores al actual de la sucesión, en caso el número sea menor o igual a 0 la función nos indicará el error.
Clase Fibonacci Scala
Ahora que tenemos nuestra función Fibonacci, vamos hacer de esta sucesión una clase para aprovechar el paradigma orientado a objetos que Java nos proporciona.
Una clase es una instancia abstracta que define un tipo de objeto especificando qué propiedades y operaciones disponibles va a tener. Una clase tiene atributos y métodos que pertenecen al objeto. Para el ejemplo tendremos los siguientes atributos y métodos.
Atributos

Nombre: Para cada objeto que tengamos le asignaremos un nombre específico para poder identificarla, este atributo será de tipo String que indica que es una cadena.
Tamaño: Cada sucesión tendrá un tamaño que indica cuántos elementos va a tener nuestra sucesión, este atributo es un entero.
Métodos
Tendremos dos constructores, el constructor vacío y otro predefinido por nosotros instanciando la clase pasándole valor a nuestros atributos.

Además de un método que nos permite imprimir la sucesión del tamaño que le especificamos, y que hace uso de la función fibonacci recursiva.

Como cada clase agregamos sus respectivos métodos Getter and setter para los atributos de la clase, NetBeans nos proporciona una opción que genera estos métodos automáticamente.

Ya tenemos nuestra clase fibonacci lista, ahora desde el principal instanciamos esta clase en dos objetos de manera diferente, pero podemos observar que el resultado será el mismo.
Para el primer caso, instanciamos la clase enviando los parámetros por el constructor y luego llamando a su método para mostrar la serie.

En el segundo caso, instanciamos la clase con el constructor vacío y, luego, enviando los parámetros por los métodos Setter. Finalmente llamando a su método para mostrar la serie.

Como resultado obtenemos:

Hemos explicado la sucesión o algoritmo de Fibonacci y lo hemos hecho a través de un sencillo ejemplo donde se puede ver el uso que se le puede dar.
¿Por dónde seguir?
Ahora que sabes de qué se trata el algoritmo de Fibonacci, ¿quieres seguir formándote en esta apasionante área profesional? En KeepCoding puedes con nuestro Bootcamp Full Stack en Big Data, Inteligencia Artificial & Machine Learning con el que dominarás todo el ecosistema de lenguajes y herramientas de Big Data en tan solo 9 meses. ¡Apúntate ahora!