【发布时间】:2017-10-07 21:36:44
【问题描述】:
我需要通过以下系列来估算 PI:
m(i) = 4( 1- 1/3 + 1/5 - 1/7 + 1/9 - 1/11 ...)
这就是我到目前为止所做的:
float mOfI = 1;
System.out.println("i \t \t \t \t m(i)" );
for (int i = 1; i < n; i++) {
float sum = i + 2;
mOfI += 4 * (1 - (1 / sum));
mOfI -= 4 * (1 - (1 / sum));
System.out.println(i + "\t \t \t \t" +mOfI);
}
我知道我在这里遗漏了许多规则,但我怎样才能使它正常工作?我的意思是数学逻辑。怎样才能正确解决?
请注意系列中的-+,所有数字都是奇数,所以我不能使用i%2。
估计的 PI 会像 4.0000 , 3.1515, 3.1466 ..... 等等。
这个question 也没有得到很好的回答(没有估计实际的 PI 值)
【问题讨论】:
-
问题出在哪里?为什么它不起作用?请突出显示。
-
@Zabuza 因为它没有正确地完成系列。
-
是的,很明显。它目前制作的系列是什么?如果您强调这一点,您将更快地获得帮助。
-
首先,使用 BigInteger 来实现这种精度。
-
@Zabuza 不,不对,你提到的问题并没有给出正确的 PI 值,顺便说一句,我在下面的回答中解决了它,谢谢。
标签: java algorithm loops for-loop pi