所以,莱布尼茨的 pi 公式是 pi/4 = 1 - 1/3 + 1/5 - 1/7 + 1/9...我不知道如何在 Java 中使用这个公式。我只需要一些关于如何将第二部分合并到其中的帮助。我知道我需要一个循环,我需要一个除数变量,并且每次都需要加 2。谢谢你的帮助。
问问题
6652 次
2 回答
1
作为提示,这是一个优化版本
long start = System.nanoTime();
double pi = 0;
for (int i = 1; i < 1000000000; i += 4) {
pi += 8.0 / (i * (i + 2L));
}
long time = System.nanoTime() - start;
System.out.println(pi + " took " + time / 1000000 / 1e3 + " secs.");
印刷
3.1415926445762157 took 1.217 secs.
如果您将此循环更改为向后而不是向前执行,您将获得更准确的结果。它更准确,因为最后添加的较大数字隐藏了较小值的一些累积舍入误差。
3.141592651589793 took 1.222 secs.
该值应为 3.14159265359
于 2013-10-01T16:48:29.227 回答
0
for
循环应该是这样的:
double sum=0;
double sign=1.0;
for(int i =1;i<=limit;i+=2)
{
sum+=sign/i;
sign* =-1;
}
于 2013-10-01T16:42:53.920 回答