我必须用Gregory级数计算Pi值:
pi =4*(1/1- 1/3) + (1/5 - 1/7) + (1/9 - 1/11) +.
我想在JavaScript中编写一个函数,它将以需要显示为参数的数字数作为参数。但我不确定我的思维方式在这里是否还好。
到目前为止,我得到的是:
function pi(n) {
var pi = 0;
for (i=1; i <= n; i+2) {
pi = 4 * ((1/i) + (1/(i+2)))
}
return pi;
}我如何写π计算,以便它计算值直到n?
发布于 2016-09-19 14:03:12
您可以使用4的增量,并在函数的末尾与4相乘。
n不是数字的数目,而是序列值的计数器。
function pi(n) {
var v = 0;
for (i = 1; i <= n; i += 4) { // increment by 4
v += 1 / i - 1 / (i + 2); // add the value of the series
}
return 4 * v; // apply the factor at last
}
console.log(pi(1000000000));
发布于 2016-09-19 14:19:04
您还可以这样做:函数将迭代10M次,并在小数点之后返回带有n有效数字的PI。
function getPI(n){
var i = 1,
p = 0;
while (i < 50000000){
p += 1/i - 1/(i+2);
i += 4;
}
return +(4*p).toFixed(n);
}
var myPI = getPI(10);
console.log("myPI @n:100M:", myPI);
console.log("Math.PI :", Math.PI);
console.log("The Diff :", Math.PI-myPI);
https://stackoverflow.com/questions/39574989
复制相似问题