/* <html><head>Crude Monte Carlo - Chapter 9, Exercise 1</head><body><pre> */

#include "random.h"
#include &ltfstream&gt
using namespace std;

ofstream ans("integral.ans");

const int niter=10;

const int n=10;

long idum=65537;          /* Seed for random number generator       */

int main (void)
{
  int i,j;
  double integral,meanintegral,ssintegral,varintegral;
  meanintegral=ssintegral=0;
  ans<<" Values computed: ";
  for (i=0; i < niter; i++)
  {
    integral=0;
    for (j=0; j < n; j++)
      integral+=exp(ran1(&idum))/n;
    ans << integral;
    if (i==n-1)
      ans << ".";
    else
      ans << ", ";
    if (i==n/2)
      ans << endl << "                  ";
    meanintegral=meanintegral+integral/niter;
    ssintegral+=integral*integral;
  }
  varintegral=(ssintegral-niter*meanintegral*meanintegral)/
              (niter-1);
  ans << endl;
  ans << " Mean is " << meanintegral << " and standard deviation is "
      << sqrt(varintegral) << "." << endl;
}

/* </pre></body></html> */

