explicacion del programa que genera pi

Iniciado por kiara_luna, 10 Septiembre 2011, 19:13 PM

0 Miembros y 1 Visitante están viendo este tema.

kiara_luna

hola necesito que me ayuden a entender el funcionamiento del siguiente programa, es el método montecarlo para hallar pi:

// se que  en esta parte se inician variables
double x,y;
  int  cantidad=0;
  double r, contador=0;
  double pi, media=0.0, varianza, desviacion;
  double suma = 0.0;

  printf("ingrese el numero de iteraciones: ");
  scanf("%d",&cantidad);
   srand(time(NULL));

     for ( contador=1; contador<cantidad; contador++)
   {
      x = (double)rand()/RAND_MAX;// en esta parte no se para que se hizo
      y = (double)rand()/RAND_MAX;
      r = x*x+y*y;// esto es para que tome los cuatro cuadrantes??
     
      if (r<=1)// en esta parte para que tome los menores a uno pero para que se hace??
       {
         contador++;//la cantidad y el contador que acumula?
         cantidad++;
         pi=contador*4/cantidad;//por que pi se hallo de ese modo?
   if(pi>=3.0){ //conque fin se hizo este if
   
         suma = suma + pi; //bueno aqui supongo que es para sumar todos los numero aleatorios que se generan
        media = suma/(double)cantidad ;
        varianza = ((suma - media)*(suma-media))/cantidad;
        desviacion = sqrt(varianza); }  //aqui supongo que se saco la raiz de varianza para hallar la desviacion
     }
       
   }
    printf("pi vale %20.14Lf\n",pi);
    printf("La media es %lf\n", media);
   
    printf("la varianza vale %20.14Lf\n",varianza);
    printf("la desviacion vale %20.14Lf\n",desviacion);
   

getch();
}
kiara