利用随机数法求π的近似值
*问题分析与算法设计
随机数法求π的近似值的思路:在一个单位边长的正方形中,以边长为半径,以一个顶点为圆心,在政权方形上作四分之一圆。随机的向正方形内扔点,若落入四分之一圆内则计数。重复向正方形内扔足够多的点,将落入四分之一圆内的计数除以总的点数,其值就是π值四分之一的近似值。
按此方法可直接进行编程,注意:本方法求出的π值只有统计次数足够多时才可能准确。
3.122267
3.139733
3.133733
*问题分析与算法设计
随机数法求π的近似值的思路:在一个单位边长的正方形中,以边长为半径,以一个顶点为圆心,在政权方形上作四分之一圆。随机的向正方形内扔点,若落入四分之一圆内则计数。重复向正方形内扔足够多的点,将落入四分之一圆内的计数除以总的点数,其值就是π值四分之一的近似值。
按此方法可直接进行编程,注意:本方法求出的π值只有统计次数足够多时才可能准确。
#include <stdio.h>
#include <math.h>
int main()
{
double e = 0.1,b = 0.5, c, d;
long int i;
for (i = 6; ; i *= 2)
{
d = 1.0 - sqrt(1.0 - b*b);
b = 0.5*sqrt(b*b + d*d);
if (2*i*b - i*e < 1e-15)
{
break;
}
e = b;
}
printf("pai = %.15lf\n", 2*i*b);
printf("The number of edges of required polygon:%ld\n",i);
return 0;
}
3.122267
3.139733
3.133733