Cálculo matricial de la sucesión de Fibonacci en C#

Volver atrás

Publicado por |

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ífico­computacionales,   matemáticas  y  biológicas.  Recordemos  que  surgió  como solución a un problema de la cría de conejos.

Referencias bibliográficas

  1. https://www.ics.uci.edu/~eppstein/161/960109.html
  2. http://es.wikipedia.org/wiki/Sucesi%C3%B3n_de_Fibonacci


Otros fibonaccisucesionesmatemáticas

Programación

Redes sociales

Twitter BrainumGoogle Plus BrainumFacebook Brainum


Política de privacidad