首页 > 专题系列 > 经典问题 > 概率算法求解π[随机算法]
2013
12-18

概率算法求解π[随机算法]

求π要先求面积,正方形的面积是可以直接求的。

可以在正方形内随机的取点,越多越好,最后找出落在园内的点个数。根据比值,可以近似求得面积。

#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#include<time.h>
int main()
{
int j;
for(j=0;j<10;j++) {
	int i,n,k;
	double x,y,f; k=0;
	srand( (unsigned)time(0));

	printf("%d\n",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);
	return 0;
}
}

 


  1. Gucci New Fall Arrivals

    This is really nice to know. I hope it will be successful in the future. Good job on this and keep up the good work.

  2. 换句话说,A[k/2-1]不可能大于两数组合并之后的第k小值,所以我们可以将其抛弃。
    应该是,不可能小于合并后的第K小值吧