java - 如何使用莱布尼茨法更快地计算 Pi 值?

标签 java performance pi

我使用莱布尼兹级数/公式计算 Pi 的程序运行正常。下面是我的程序:-

    public class PiFinder
{
    public static void main()
    {
        double count = 99999.0;
        double denominator = 1.0;
        double pi = 0.0;
        for (int x=0; x <= count; x++)
        {
            if (x%2==0)
            {
                pi = pi + (1/denominator);
            }
            else
            {
                pi = pi - (1/denominator);
            }
            denominator = denominator + 2;
        }
        pi = pi * 4; 
        System.out.println("Value of Pie: " + pi);
    }
}

如果我将 count 的值增加到 999999999.0(9 位数字)或 9999999999.0(10 位数字),JVM 会继续运行。如何减少 JVM 解释的时间?

最佳答案

模运算非常慢,但是如果模是 2 的幂并且值是整数,则可以用位运算代替它们。为了从中受益,请将计数器 x 设置为整数类型。

关于java - 如何使用莱布尼茨法更快地计算 Pi 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30012749/

相关文章:

java - Hashset 和 Arraylist 性能

java - 发现出现百分比总是等于 0?

java - 如何逼近圆周率

java - 如何强制 lambda 定义的新实例化

java - 从 jTable 更新 SQL Server 表

java - 关于游戏循环迭代数据结构的问题

r - 为什么 `speedglm`比 `glm`慢?

c++ - 定义 PI 的值

java - 首选项默认值和 PreferenceActivity

java - 解析后应使用哪种数据结构来存储 XML 的不同标记值