Título: error en hallar media Publicado por: kiara_luna en 28 Agosto 2011, 17:54 pm hola hice un programa que calcule pi por el metodo de montecarlo, trate de hallar la media, la varianza y la desviacion de los numeros aleatorios generados, pero la media me da muy baja y la desviacion muy alta, hice un if para hallar la media a partir de los numeros mayores a 3.0 pero me sigue dando muy baja, me dijeron que para lo que quiero hacer tengo que guardar los numeros generados en un arreglo y de ahi escoger los mayores a 3.0 para hallar la media, pero la verdad nunca he trabajado con arreglos, alguien me puede explicar.. ayuda porfa.
#include <stdlib.h> #include <stdio.h> #include <math.h> #include <string.h> #include <conio.h> #include <time.h> int main() { int cantidad; double x,y; int i; double z, contador=0; double pi, media, suma, varianza, desviacion; printf( "Cuantas iteracciones desea hacer: "); scanf("%d",&cantidad); srand(time(NULL)); for ( contador=0; contador<cantidad; contador++) { x = (double)rand()/RAND_MAX; y = (double)rand()/RAND_MAX; z = x*x+y*y; if (z<=1) { contador++; cantidad++; pi=contador*4/cantidad; suma = suma + pi; if(pi>=3.0){ suma = suma + pi; media = suma/(double)cantidad ; varianza = ((suma - media)*(suma-media))/cantidad; desviacion = sqrt(varianza); } } } printf("La media es %lf\n", media); printf("la varianza vale %20.14Lf\n",varianza); printf("la desviacion vale %20.14Lf\n",desviacion); getch(); } |