我一直在寻找数小时试图找到一个算法来获取JavaScript的第n个数字。
我知道我可以使用2*Math.acos(0)
或Math.PI
获取PI,但我需要找到第n位。
如果没有硬编码的数字,如何获得PI的第n位?
答案 0 :(得分:5)
假设有一些第一年的微积分,这是一种相当简单的方法。
您可以通过反复推导和理解它们的斜率来近似函数 - 然后围绕它们构建多项式,使得多项式足够好地逼近它们的行为。如果你继续这样做,只要你能得到一个叫做泰勒序列的东西。如果一个功能是"表现良好"足够 - 比如正弦函数,你可以很容易地近似它。
这是正弦函数的扩展,取自维基百科(CC维基百科)
你可以通过推导sin(x)
n次并逼近它来得出这个结果。阅读更多on the subject here。
一个有用的分析,并提出反正切函数Math.atan
:
这很有用,因为我们知道x = 1
{。}}。
所以,让我们写下Math.atan(1) = Pi/4
:
getPi
您执行的迭代次数越多,您获得的准确性就越高。有更快的方法来计算Pi,这只是一个需要一些的例子 - 但不是大量的数学。如上所述 - 它的工作原理是用多项式近似atan函数。
注意:由于JavaScript双精度数字有限,因此我们对更大的数字有更大的问题。我们在这个答案中忽略了这一点。