# include # include # include double f ( int m, double x[] ); int main ( int argc, char* argv[] ) { double error; double f1; double f2; int i; int j; int m = 2; int n = 1000000; unsigned int seed = 123456789; double stdev; double sterr; double value; double x[2]; seed = time ( 0 ); srand ( seed ); f1 = 0.0; f2 = 0.0; for ( i = 0; i < n; i++) { for ( j = 0; j < m; j++ ) { x[j] = ( double ) rand ( ) / ( double ) RAND_MAX; } value = f ( m, x ); f1 = f1 + value; f2 = f2 + value * value; } f1 = f1 / ( double ) n; f2 = f2 / ( double ) ( n - 1 ); stdev = sqrt ( f2 - f1 * f1 ); sterr = stdev / sqrt ( ( double ) n ); error = fabs ( f1 - 1.0 ); printf ( "\n" ); printf ( " N F stdev sterr err\n" ); printf ( "\n" ); printf ( "%7d %.15g %6.4f %6.4f %8g\n", n, f1, stdev, sterr, error ); return 0; } double f ( int m, double x[] ) { int i; double value; value = 1.0; for ( i = 0; i < m; i++ ) { // value = value + x[i] * x[i]; value = value * fabs ( 4.0 * x[i] - 2.0 ); } //value = sqrt ( value ); return value; }