使用Leibniz系列计算Pi什么是delta(运行计算的差异)?

时间:2017-09-04 15:22:46

标签: java series pi

我必须使用leibniz系列计算pi到六位小数精度,我设法做到这一点,除了分配有一些限制。

pi / 4 = 1 -1/3 + 1/5 - 1/7 ......

” 不能在计算中使用数学库π - 直接或间接。仅使用正在运行的计算的增量(差异)来确定何时停止循环 “

我不明白这意味着你的运行计算的差异。我被告知的另一种方式是“当你的计算值停止变化时,你的循环可以停止”

package com.company;

public class Main {

public static void main(String[] args) {

    double series = 0;
    double denominator = 1;
    double numerator = 1;
    double pi;
    double testingPi;
    double formattedTestingPi = 0;
    double formattedMathPi = Math.round(Math.PI * 1000000.0) / 1000000.0;
    int max = 1200000;
    int iterations = 0;

    for(int i = 1; i < max;i++)
    {
        if((i % 2) != 0)
        {
            series = series + (numerator/denominator);
        }
        else if((i % 2) == 0)
        {
            series = series + ((numerator/denominator) * -1);
        }

        denominator = denominator + 2;
        testingPi = series * 4;

        formattedTestingPi = (Math.round(testingPi * 1000000.0))/1000000.0;

        if( formattedTestingPi == formattedMathPi)
        {
            iterations = i;
            i = max;
            System.out.println("We stop");
        }
    }

    pi = series * 4;

    System.out.println("Number of Iterations       :" + iterations);
    System.out.println("Unformatted Series         :" + series);
    System.out.println("Unformatted Math Library PI:" + Math.PI);
    System.out.println("Unformatted Computed     PI:" + pi);
    System.out.println("Formatted Computed       PI:" + formattedTestingPi);
    System.out.println("Formatted Math Library   PI:" + formattedMathPi);

 }

}

我不想解决这个问题,我只是想知道   什么是计算的三角形意味着什么,它与我现在正在做的有什么不同?

输出

迭代次数:1181461

未格式化系列:0.7853983749998679

未格式化数学库PI:3.141592653589793

未格式化的计算PI:3.1415934999994715

格式化计算PI:3.141593

格式化数学库PI:3.141593

0 个答案:

没有答案