/* Robert Grumbine */ /* Program to illustrate error average in support of article http://moregrumbinescience.blogspot.com/2010/03/ */ /* 10 March 2010 */ #include #include #define NTRIALS 365 #define NCOINS 8 int main(void) { float trials[NTRIALS]; float sample[NCOINS]; float toss, sum, grandsum, errsize; int i, j; srand(0); errsize = 0.1; grandsum = 0.0; for (i = 0; i < NTRIALS; i++) { sum = 0.; for (j = 0; j < NCOINS; j++) { toss = (float) rand() / (float) RAND_MAX; if (toss > 0.5) { sample[j] = +errsize; } else { sample[j] = -errsize; } sum += sample[j]; } printf("Trial %4d error %4.1f\n",i,sum); trials[i] = sum; grandsum += sum; } printf("Total error after %d trials is %f, average is %f\n", NTRIALS, grandsum, grandsum/(float)NTRIALS); return 0; }