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();
}