采用概率算法(投标法)估计π值,给出不同的n值及精度。

#include<stdio.h>
#include<math.h>
#include<stdlib.h> 
#include<time.h>
void main()
{int j;
for(j=0;j<10;j++)
{ int i,n,k;
  double x,y,f;
  k=0;
 srand( (unsigned)time(0));
 printf(" 输入次数:");
 scanf("%d",&n);
 for(i=0;i<n;i++)
 {x=rand()/(double)RAND_MAX;
  y=rand()/(double)RAND_MAX;
  f=sqrt(1-x*x);
  if(y<=f) k++;
  }
printf("pai=%5.8f\n",4.0*k/n);
}
}

运算结果:

想要得到更精确的结果,可以将投标的次数增大。

原文地址:https://www.cnblogs.com/yuzeren48/p/2735340.html