采用概率算法(投标法)估计π值,给出不同的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);

}

}

运算结果:

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

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

你可能感兴趣的:(算法)