所以,Leibniz的pi公式是pi / 4 = 1 - 1/3 + 1/5 - 1/7 + 1/9 ......我无法弄清楚如何在Java中使用这个公式。我只需要一些关于如何将第二部分纳入其中的帮助。我知道我需要一个循环,我需要有一个除数变量,每次需要加2。谢谢你的帮助。
答案 0 :(得分: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
答案 1 :(得分:0)
for
循环应如下所示:
double sum=0;
double sign=1.0;
for(int i =1;i<=limit;i+=2)
{
sum+=sign/i;
sign* =-1;
}