Pi的第n位数

Spe*_*rds 5 javascript pi

我一直在寻找数小时试图找到一个算法来获取JavaScript的第n位pi.

我知道我可以使用2*Math.acos(0)Math.PI获得PI,但我需要找到第n位.

如果没有硬编码的数字,如何获得PI的第n位?

Ben*_*aum 5

假设有一些第一年的微积分,这是一种相当简单的方法.

您可以通过反复推导它们并理解它们的斜率来近似函数 - 然后围绕它们构建多项式,使得多项式足够好地近似它们的行为.如果你继续这样做,只要你能得到一个叫做泰勒序列的东西.如果某个函数"表现良好" - 例如正弦函数,则可以相当容易地逼近它.

这是正弦函数的扩展,取自维基百科(CC维基百科)

在此输入图像描述

你可以通过推导sin(x)n次并逼近它来得出这个.在这里阅读更多关于这个主题.

一个有用的分析它并提出反正切函数Math.atan:

在此输入图像描述

这是有用的,因为x = 1我们知道Math.atan(1) = Pi/4.

所以,让我们写下getPi:

function getPi(){
    var sum = 0;
    for(var n = 0; n < 100000000; n++){
        var mult = (n%2 === 0) ? 1 : -1; // -1^n
        sum += mult * (1 / (2*n+1));
    }
    return sum * 4; // to get pi
}
getPi(); // 3.141592643589326
Run Code Online (Sandbox Code Playgroud)

您执行的迭代越多,您获得的准确性就越高.有更快的方法来计算Pi,这只是一个需要一些的例子 - 但不是大量的数学.如上所述 - 它的工作原理是用多项式逼近atan函数.

注意:由于JavaScript双精度数有界,因此我们对更大的数字有更大的问题.我们在这个答案中忽略了这一点

  • 问题是关于如何获得_nth digit_**而不是**_PI本身_.:) (8认同)