Está en la página 1de 2

La serie Fibonacci

Una de las series ms famosas es sin duda alguna la serie de Fibonacci:

Un poco de observacin es sufucuente para encontrar que cualquier nmero (a partir del tercero de la serie, osea el segundo 1) es igual a la suma de los dos nmeros anteriores. Daremos en primer lugar la versin iterativa. En este algoritmo deseamos encontrar el simo nmero de la serie Fibonacci. As si el resultado del algoritmo debe ser ; si el resultado debe ser . La versin iterativa empieza desde los primeros 1's, sumndolos y encontrando el tercero, luego para encontrar el cuarto nmero se suman el tercero (recin encontrado) y el segundo, y as en adelante hasta encontrar el nmero buscado.
#include <iostream> int main (int argc, char * const argv[]) { int i,n,fib,fib1,fib2,fibx; std::cout<<"Un numero entero:"; std::cin>>n; fib1=2; fib2=1; i=3; if((n==1)||(n==2)) fib=1; else{ do{ fib = fib1 + fib2; fibx = fib1; i++; fib1 = fib; fib2 = fibx; }while(i<n); } std::cout << "\nEl "<<n<<"-esimo numero de la serie Fibonacci es: "<<fib; return 0; }

La definicin recursiva para encontrar todos los es:

primeros nmeros de la serie Fibonacci

En el siguiente cdigo, la solucin que propone la recursividad resulta en una programacin elegante, aunque costosa. El cdigo que hace esto es:

( 1) ( 2) ( 3) ( 4) ( 5) ( 6) ( 7) ( 8) ( 9) (10) (11) (12) (13) (14) (15) (16)

#include <iostream> //==================== int fib(int val){ if ((val==1)||(val==2)) return 1; else return (fib(val-1)+fib(val-2)); } //==================== int main (int argc, char * const argv[]) { int n; std::cout<<"Numero entero:"; std::cin>>n; std::cout<<"\nEl "<< n <<"-esimo numero fibonacci es: "<< fib(n); return 0; }

Como regla general, cualquier algoritmo recursivo se puede reescribir en un algoritmo iterativo. La ventaja de tener un algoritmo iterativo es que no se usa una pila para guardar llamadas a la misma funcin de manera recursiva, esto es una ventaja porque el espacio de memoria destinado al uso de la pila es generalmente limitado, de manera que cuando se hacen demasiadas funciones push seguramente llegar el momento en que la pila ``se desborde'', que por cierto es un trmino usado en computacin para decir que ya no hay ms espacio disponible en la pila. http://computacion.cs.cinvestav.mx/~acaceres/courses/estDatosCPP/node38.html

También podría gustarte

  • El Costo de Capital
    El Costo de Capital
    Documento44 páginas
    El Costo de Capital
    Alejandro Andrade Imitador Juan Gabriel
    0% (1)
  • 34 Historia de Los Bancos
    34 Historia de Los Bancos
    Documento3 páginas
    34 Historia de Los Bancos
    Lm Rosas
    Aún no hay calificaciones
  • Seminario de Investigación I
    Seminario de Investigación I
    Documento20 páginas
    Seminario de Investigación I
    Alejandro Andrade Imitador Juan Gabriel
    Aún no hay calificaciones
  • Compuertas Logicas
    Compuertas Logicas
    Documento14 páginas
    Compuertas Logicas
    Alejandro Andrade Imitador Juan Gabriel
    Aún no hay calificaciones
  • Funciones Area Fiscal
    Funciones Area Fiscal
    Documento8 páginas
    Funciones Area Fiscal
    Alejandro Andrade Imitador Juan Gabriel
    Aún no hay calificaciones
  • Diseno de Algoritmos
    Diseno de Algoritmos
    Documento13 páginas
    Diseno de Algoritmos
    Alejandro Andrade Imitador Juan Gabriel
    Aún no hay calificaciones
  • Mauales Administrativos
    Mauales Administrativos
    Documento188 páginas
    Mauales Administrativos
    Alejandro Andrade Imitador Juan Gabriel
    Aún no hay calificaciones
  • AMORTIZACION
    AMORTIZACION
    Documento5 páginas
    AMORTIZACION
    Alejandro Andrade Imitador Juan Gabriel
    Aún no hay calificaciones
  • Cuentas Activo y Pasivo
    Cuentas Activo y Pasivo
    Documento1 página
    Cuentas Activo y Pasivo
    Alejandro Andrade Imitador Juan Gabriel
    0% (1)
  • Sociologia Comportamientos
    Sociologia Comportamientos
    Documento15 páginas
    Sociologia Comportamientos
    Alejandro Andrade Imitador Juan Gabriel
    Aún no hay calificaciones