Author: Not specified Language: cpp-qt
Description: Not specified Timestamp: 2017-01-30 00:33:10 +0000
View raw paste Reply
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4. #include <math.h>
  5. #define NSEED 100
  6. int main()
  7. {
  8.         double x, pi, f, dv;
  9.         double sum, sum_pi, sum_pi2;
  10.         int itry, iseed, ntry;
  11.         printf("Input the number of MC trials\n");
  12.         scanf("%d",&ntry);
  13.         srand((unsigned)time((long *)0));
  14.         sum_pi = sum_pi2 = 0.0;
  15.         for (iseed=0; iseed<NSEED; iseed++)
  16.         {
  17.                 sum = 0.0;
  18.                 for (itry=0; itry<ntry; itry++)
  19.                 {
  20.                         x = rand()/(double)RAND_MAX;
  21.                         f = 4.0/(1.0 + x*x);
  22.                         sum += f;
  23.                 }
  24.                 pi = sum/ntry;
  25.                 sum_pi += pi;
  26.                 sum_pi2 += pi*pi;
  27.         }
  28.         dv = sqrt((sum_pi2/NSEED) - (sum_pi/NSEED)*(sum_pi/NSEED));
  29.         printf("MC estimate for PI = %f +- %e \n", sum_pi/NSEED, dv);
  30.         return 0;
  31. }
View raw paste Reply