SoloCodigo

Programación Específica => Diseño de Algoritmos => Mensaje iniciado por: celuti en Viernes 14 de Mayo de 2010, 17:16

Título: algoritmo para series numericas
Publicado por: celuti en Viernes 14 de Mayo de 2010, 17:16
Hola:
¿Alguien sabría como diseñar un algoritmo que almacene en cada posición de un vector el resultado de la serie?
1, 1/2, 1/(2+1/3), 1/(2+1/(3+1/4)), 1/(2+1/(3+1/(4+1/5))),...,?
Muchas gracias.
Saludos.
Título: Re: algoritmo para series numericas
Publicado por: Nebire en Sábado 15 de Mayo de 2010, 23:37
El algortmo subyacente son 2 simples bucles...
Se resuelve abriendo el bucle externo en un ciclo creciente (recorriendo el vector) y el bucle interno iniiciando el cálculo desde la división más profunda hasta la primera (bucle regresivo)



Código: Text
  1.  
  2. Cantidad = 10  
  3. Matriz(Cantidad-1)  designa una matriz de 10 elementos.
  4. n = 1
  5. Matriz(0)= n
  6. hacer: Mientras n < (Cantidad -1)
  7.      Incrementar n
  8.      Cuenta = n
  9.      div = ( 1 / n )  la priemra división se realiza fuera del bucle para inicializar la división en su valor más 'profundo'
  10.      Hacer  Mientras Cuenta > 1
  11.            Div = (1 / (Cuenta + Div))
  12.            Decrementar Cuenta
  13.      repetir
  14.      Matriz(n) = Div
  15. repertir
  16.  
Nota que 'div' y la propia 'matriz' tendrás que declararlo como double, de lo contrario a partir de cierto índice de la matriz la diferencia entre 2 elementos consecutivos será tan pequeña que puede perderse si se emplea un tipo de datos sin la debida precisión.

La verdad es que el algoritmo no ofrece ninguna cmplejidad y todo el mundo debería ser capaz de resolverlo acaso con un poco más de tiempo invertido...
Título: Re: algoritmo para series numericas
Publicado por: celuti en Martes 18 de Mayo de 2010, 14:04
Muchas gracias por tu ayuda. Me ha sido de mucha utilidad.
Un saludo.