利用C语言进行蒙特卡罗模拟圆周率

因为C语言是面向过程语言,进行蒙特卡罗模拟的速度要远远快于Matlab和python,所以是科学模拟的首选,这里简单的写一个C语言模拟圆周率的入门程序。

#include
#include
#include
#include

//Monte Carlo simulation of Pi
void main()
{
	double x, y, pi;
	int n, k;
	srand((unsigned)time(NULL)); //播种随机数
	for (n = 1, k = 0; n <= 200000; n++) //将20万个点随机撒在范围x(0~1)和y(0~1)的区域内
	{
		x = rand() / (double)RAND_MAX;
		y = rand() / (double)RAND_MAX;
		if (sqrt((x - 0.5)*(x - 0.5) + (y - 0.5)*(y - 0.5)) < 0.5) //比较得出有k个点落在了半径为0.5,圆心(0.5,0.5)的圆内
		{
			k++;
		}
	}
	pi = k / (0.25 * 200000);
	printf("the pi is %7.5lf\n",pi);  //根据圆的面积公式近似模拟出pi的值
}

你可能感兴趣的:(利用C语言进行蒙特卡罗模拟圆周率)