Is there a more efficient way to calculate pi?
我昨天开始学习Java。因为我知道其他编程语言,所以我更容易学习Java。其实很酷。我还是喜欢Python:)总之,我写了这个程序来计算基于算法的π(π=4/1-4/3+4/5-4/7….),我知道有更有效的计算π的方法。我该怎么做呢?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | import java.util.Scanner; public class PiCalculator { public static void main(String[] args) { int calc; Scanner in = new Scanner(System.in); System.out.println("Welcome to Ori's Pi Calculator Program!"); System.out.println("Enter the number of calculations you would like to perform:"); calc = in.nextInt(); while (calc <= 0){ System.out.println("Your number cannot be 0 or below. Try another number."); calc = in.nextInt(); } float a = 1; float pi = 0; while (calc >= 0) { pi = pi + (4/a); a = a + 2; calc = calc - 1; pi = pi - (4/a); a = a + 2; calc = calc - 1; } System.out.println("Awesome! Pi is" + pi); } } |
经过1000000次计算,该代码的结果仍然是3.1415954。必须有一种更有效的方法来做到这一点。
谢谢!
型
在Java中计算PI的最有效的方法是根本不计算它:
虽然你的问题还不清楚,但我猜你实际上是在做运动。在这种情况下,您可以尝试nilakantha系列:
1 2 3 4 | float pi = 3; for(int i = 0; i < 1000000; i += 2) { pi += 4 / (float) (i * (i + 1) * (i + 2)); } |
号
更有效和准确的是Machin的公式: