Foros del Web » Programación para mayores de 30 ;) » Java »

ciclo para hallar PI

Estas en el tema de ciclo para hallar PI en el foro de Java en Foros del Web. Hola comunidad mi problema es el siguiente, alguien que me de una idea de como hacer en un ciclo para ir cambiando de signo en ...
  #1 (permalink)  
Antiguo 18/12/2007, 16:14
Avatar de SidP  
Fecha de Ingreso: febrero-2006
Ubicación: /etc/php.ini
Mensajes: 129
Antigüedad: 18 años, 2 meses
Puntos: 2
ciclo para hallar PI

Hola comunidad

mi problema es el siguiente, alguien que me de una idea de como hacer en un ciclo para ir cambiando de signo en cada iteracion : por ejemplo para hallar la constante PI=3.14 seria 4* (1- 1/3 +1/5 -1/7 +1/9 ……)

gracias de antemano
  #2 (permalink)  
Antiguo 18/12/2007, 17:31
Avatar de TolaWare
Colaborador
 
Fecha de Ingreso: julio-2005
Mensajes: 4.352
Antigüedad: 18 años, 9 meses
Puntos: 24
Re: ciclo para hallar PI

Por ejemplo, podrías utilizar las potencias de -1, es decir que en cada iteración, multiplicar el valor a sumar por -1 elevado a la variable de iteración:

mas o menos:

int n = -1
for(int i=0;i<valor;i++) {
numero = Math.pow(n,i);
numeroASumar *= numero;
sumaAcumulada += numero;
}

Esa opción es viable si no vas a hacer muchas iteraciones.

Si vas a hacer un calculo de PI con muchas iteraciones podés hacer lo siguiente:
int n=-1;
int mult = -1;
for(int i=0;i<valor;i++) {
numero = numero * mult;
numeroASumar *= numero;
sumaAcumulada += numero;
}

De es amanera mult irá cambiando de signo en cada iteración.
  #3 (permalink)  
Antiguo 19/12/2007, 06:44
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: ciclo para hallar PI

Asi como lo ha puesto Tolaware parece un poco lioso, el código tiene algunos nombres cambiados , pero si, la cuestion básica es que si multiplicas n * -1 en cada vuelta del bucle, el signo se va alternando. Prueba:
Cita:
int signo = 1;
for (int = 0;i<10;i++)
{
System.err.println("Signo: " + signo);
signo = signo * -1;
}
  #4 (permalink)  
Antiguo 20/12/2007, 21:46
Avatar de SidP  
Fecha de Ingreso: febrero-2006
Ubicación: /etc/php.ini
Mensajes: 129
Antigüedad: 18 años, 2 meses
Puntos: 2
Re: ciclo para hallar PI

saludos...ahora es que tuve tiempo de revizar el foro...muchas gracias por las aclaraciones...al final me quedo asi...porque tenia que comprobar hasta que el ultimo fuera positivo y menor que 0.0000000001
Código:
    public double PI(){
    double pi=0,serie=0, i=1;
   
    do{
        serie= Math.pow(-1,(i+1))*(4/(2*i-1));
        pi = pi+serie;
        i++;
    }
    
    while((serie>0.000001)||(serie<0));
        return pi;
    }

gracias
  #5 (permalink)  
Antiguo 21/12/2007, 04:17
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: ciclo para hallar PI

Me alegro que te funcione, aunque usar Math.pow para calcular el signo teniendo el signo anterior es una perdida de tiempo y recursos .
S!

Para ser más exactos, en mi ordenador, como ejemplo, utilizando Math.pow me tarda 10x veces mas.

Última edición por GreenEyed; 21/12/2007 a las 04:25
  #6 (permalink)  
Antiguo 28/10/2008, 22:32
 
Fecha de Ingreso: octubre-2008
Mensajes: 1
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: ciclo para hallar PI

Alguien podria ayudarme con un programa similar
Necesito de igual menara determinar ;a generacion del numero PI hasta que el error de aproximacion sea menor igual a 0,075%
Ea= (valor actua - valor anterior)/valor actual x 100

Por favor si alguien me puede ayudar....
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:36.