1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > 蒙特卡洛法计算圆周率近似值(C语言)

蒙特卡洛法计算圆周率近似值(C语言)

时间:2023-01-06 01:30:26

相关推荐

蒙特卡洛法计算圆周率近似值(C语言)

C语言实现蒙特卡洛法计算圆周率近似值

随机生成ALL个范围0-1的数来模拟1×1的正方形,计算位于四分之一圆(X×X+Y×Y<1)内的个数inround,PI=4×ALL/inround。其中宏的参数(ALL和RAND_MAX)对于精确度非常关键。

#include<time.h>#include<stdio.h>#include<stdlib.h>#define ALL 100000int main (){srand(time(0));double X[ALL],Y[ALL];int inround=0,index;for(index=0;index<ALL;index++){X[index]=(double)rand()/(double)RAND_MAX;Y[index]=(double)rand()/(double)RAND_MAX;if(X[index]*X[index]+Y[index]*Y[index]<=1)inround++;/*printf("%lf %lf\n",X[index],Y[index]); */}//计算平均数一定程度上检验生成的随机数是否合理// for(index=1;index<ALL;index++){X[0]+=X[index];Y[0]+=Y[index];}printf("\n%lf%lf",X[0]/ALL,Y[0]/ALL);//越接近0.5越合理// printf("\n圆周率近似= %lf\n",4*(double)inround/(double)ALL); return 0;}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。