Publicado por Ángel Manuel García Carmona |
La sucesión matemática de Fibonacci es la siguiente sucesión infinita de números naturales: 1, 1, 2, 3, 5, 8, 13, 21, ... Cada uno de estos números se denomina número de Fibonacci y resultan de la suma de los dos anteriores (por ejemplo, el quinto número de Fibonacci, resulta de la suma de 2 y 3).
Tanto a la hora de efectuar un cálculo "manual" como automatizado (programado, hablando con respecto a la informática), la forma más directa es la el recurso a la suma de los dos anteriores sin más. En el caso informatizado, se programaría un sencillo algoritmo iterativo.
No obstante, en ambas situaciones hay otras formas de calcular el n-ésimo número de Fibonacci. Una de ellas es la forma matricial, que resulta de la diagonalización de una matriz que consiste en la representación matricial de un sistema de ecuaciones, teniendo en cuenta los números 0 y 1 de Fibonacci. Podréis obtener más información sobre esta forma en la referencia no 2, que indicaremos al final. Nos limitaremos a abordar lo referente al cálculo mediante dicha forma en el lenguaje C#, exponiendo a continuación el correspondiente código:
class Fibonacci { static int matricial(int n) { int[,] M= {{1,0},{0,1}}; int[,] A= new int[2,2]; for(int i=0;i<n;i++) { A[0,0] = M[0,0]*0+M[0,1]*1; A[0,1] = M[0,0]*1+M[0,1]*1; A[1,0] = M[1,0]*0+M[1,1]*1; A[1,1] = M[1,0]*1+M[1,1]*1; M[0,0] = A[0,0]; M[0,1] = A[0,1]; M[1,0] = A[1,0]; M[1,1] = A[1,1]; } return M[0,1]; } static void Main() { int n = int.Parse(Console.ReadLine()); Console.WriteLine(matricial(n)); } }
Tal y como se refleja en el código, a modo de sugerencia, se expone el recurso a esta función (cálculo matricial de Fibonacci), que se emplea una básica iteración dado que lo que cabe destacar es la asignación de variables, en una aplicación de consola. En este caso, simplemente se imprimirá el nésimo número de Fibonacci.
Para concluir, me gustaría destacar que esta sucesión matemática tiene aplicaciones científicocomputacionales, matemáticas y biológicas. Recordemos que surgió como solución a un problema de la cría de conejos.
Referencias bibliográficas
- https://www.ics.uci.edu/~eppstein/161/960109.html
- http://es.wikipedia.org/wiki/Sucesi%C3%B3n_de_Fibonacci