Foro de elhacker.net

Programación => Java => Mensaje iniciado por: gh1E en 20 Mayo 2015, 01:00 am



Título: Cómo Resolver Serie Numérica en JAVA? (Ayuda)
Publicado por: gh1E en 20 Mayo 2015, 01:00 am
Estimados todos;

Antes de nada estoy muy agradecido por el apoyo que brindan de una forma desinteresada, empecé hace poco en JAVA y de verdad tengo algo de confusión, tenganlo por seguro que si puedo contribuir en algo pues definitivamente lo haría con gusto, ahora sin querer abusar de sus habilidades deseo hacer una consulta, estoy desarrollando un programa en el cual permita calcular la suma de los primeros n términos de la siguiente serie numérica:

(http://www.subeimagen.com/images/2015/05/20/serienumerica.png)

La verdad estoy perdido, encontré en esta serie números fibonacci, además de números primos, pero el poder desarrollar el programa nada más tengo hasta aquí, es decir nada:

(http://www.subeimagen.com/images/2015/05/20/codigoinconcluso.png)

Agradezco inmensamente a quien me de una luz y bueno si no es posible pues de todas maneras gracias por el leer el mensaje.


Saludos cordiales, hasta pronto.



Título: Re: Cómo Resolver Serie Numérica en JAVA? (Ayuda)
Publicado por: engel lex en 20 Mayo 2015, 06:56 am
no te puedo ayudar en el código como tal porque no trabajo java... pero puedo ayudarte a desglosar el problema y hacer más o menos un código entendible...


es un problema tal que iniciamos con

Código
  1. int S = -1;

eso sería -30


luego... las raices van de 6 en 6, el valor del numero no raiz, el indice de la raíz +2 y resto de valores como ya dijiste es fibonacci


entonces puedes hacer una funcion tal que calcule por par (raíz + numero), el primer numero para evitar calcularlo lo pasamos como 0,1,2,3,4,5.... etc

Código
  1. float calculo_par(int indice_raiz, int base_raiz, int potencia){
  2.    indice_raiz = 5 + indice_raiz*6;
  3.    int numero_solo = indice_raiz + 2;
  4.    return calcular_raiz_nesima(base_raiz, indice_raiz) - calcular_potencia(numero_solo,potencia);
  5. }

ahora... para el ciclo principal que sumará todo... la variable ciclos indicar{a cuantas veces repetiremos este calculo

Código
  1. int valor_fib1 = 1;
  2. int valor_fib2 = 1;
  3. float resultado = -1;//este es "S"
  4. for(indice=0;indice=ciclos;indice++){
  5.  resultado = resultado + calculo_par(indice, valor_fib1, valor_fib2);
  6.  valor_fib1 = valor_fib1 +  valor_fib2;
  7.  valor_fib2 = valor_fib2 + valor_fib1;
  8. }
  9.  

con eso el programa debería ir bien, pero aún tienes que hacer las potencias y raíces... tambien tienes que estar pendiente que la variable no se te desborde...

aunque es probable que para el 3er ciclo suceda(193 es un numero de más de 32bits, no se de cuanto es el int de java, pero 2521 debe ser de más de 64 bits)... si existen esos limites, trata de buscar como hacer cálculos de "precisión arbitraria"


espero que puedas traducir mis funciones a java y te sean útiles :P