En este blog, me gustaría dar un resumen comprensible sobre una sucesión interesante e infinita, hablo de la sucesión de Fibonacci. Es fundamental llegar a programar esta sucesión cuando eres estudiante de ingeniería de computación, ya que es un buen ejercicio para cuando se esta aprendiendo recursividad. Funcionalidades recursivas fue, es y será siempre una herramienta primordial para la creación de programas.
Imagen 1. Sucesión de Fibonacci, sitio web: gutl.jovenclub.cu/python-y-la-sucesion-de-fibonacci |
La sucesión de Fibonacci
Primero que todo, esta aportación de la matemática de parte de Leonardo De Pisa surge de un problema que propuso Liber Abaci, lo cual el problema consistía en:
" ¿Cuántas parejas de conejos conseguiremos en un año si empezamos con una pareja de conejos que produce cada mes otra pareja que a su vez procrea a los dos meses de vida? "
Entonces a partir de ese problema, la sucesión de Fibonacci consta de siempre sumar los dos últimos resultados (todos los números presentes en la sucesión, son números de Fibonacci). En la siguiente imagen se verá como se comporta la sucesión.
Sucesión de Fibonacci |
¿Qué paso? Pues:
- 0+1=1 / 1+1=2 / 1+2=3 / 2+3=5 / 3+5=8 / 5+8=13 / 8+13=21 / 13+21=34
Esa sucesión anterior que se muestra, es la regla la cual es:
- F(n)=F(n-1)+F(n-2)
Código
- Pseudocódigo
ilustración 2. Pseudocódigo de la sucesión de Fibonacci |
- Python
Lo mostraré en este lenguaje ya que es un lenguaje donde la mayoría de expertos recomiendan empezar aprender a programar, por su facilidad y también quería dar un ejemplo de como se programaría esta sucesión en una lenguaje de alto nivel. Python realiza una pila que termina hasta que el "n" de 1 y empieza a sumar todo lo de la pila y retorna el resultado (Ver ilustración 3).
Ilustración 3, código de la sucesión de Fibonacci en Python. |
- Ensamblador (ARM)
Lo ensañaré en este lenguaje ya que es un nivel muy bajo y es uno de lenguajes que más temor provoca en los estudiantes de computación. No es nada complicado, simplemente es de analizar el problema, crear una solución en un diagrama de flujo y luego adaptarlo al lenguaje de programación. (Ver ilustración 4 y 5)
Ilustración 4, Primer parte de código |
Ilustración 5, Segunda parte de código |
Lo anterior lo que puede ser confuso son que los datos se manejan por medio de registros pero sigue la misma secuencia, anterior sumado con actual y así sucesivamente. La función "function" hace eso, incrementa el contador y se detiene hasta que sea igual al número de entrada, mientras no sea igual suma el anterior más el actual y anterior toma el valor de actual y actual toma el valor del resultado de la suma entre actual y anterior. La función final solo imprime el resultado.
Si, entiendo fue 43 líneas más que en Python, pero no siempre existió ese lenguaje y aun sin existir ya existía la programación de la sucesión de Fibonacci.
Si, entiendo fue 43 líneas más que en Python, pero no siempre existió ese lenguaje y aun sin existir ya existía la programación de la sucesión de Fibonacci.
Recomiendo programar en ensamblador (cualquier tipo), da un punto de vista y mejora aun más la compresión para solución de problemas lo cual es muy importante para el mundo del desarrollo de Software.
Referencias
- Astronomía Educativa: Tierra, Sistema Solar y Universo. Leonardo de Pisa y la sucesión de Fibonacci. Setiembre 15 del 2017, de Sitio web: www.astromia.com/biografias/fibonacci.htm
- Fernando Pino.. ¿Qué es la sucesión de Fibonacci?. 15/09/2017, de Sitio web: www.vix.com/es/btg/curiosidades/4461/que-es-la-sucesion-de-fibonacci
Comentarios
Publicar un comentario