采用概率算法(投标法)估计π值,给出不同的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); } }
运算结果:
想要得到更精确的结果,可以将投标的次数增大。
Powered by yuzeren
微信:330853172
Email:yuzeren@mail.ustc.edu.cn