利用程序计算圆周率有很多方法,这里我们举四个小例子。
1. 统计方法
本质是随机撒点,也叫蒙特·卡罗法(Monte Carlo method)。
源代码:
void method_1(int N)
{
double x, y, hits = 0;
for (int i = 0; i < N; i++)
{
x = (double)rand() / RAND_MAX;
y = (double)rand() / RAND_MAX;
if (x * x + y * y < 1.0)
hits++;
}
printf("pi: %lfn", (hits / N) * 4);
}
运行结果(N = 4000 * 4000):
<