使用 Gregory-Leibniz 级数计算 JavaScript 中的 Pi
Calculating Pi in JavaScript using Gregory-Leibniz Series
我必须使用格雷戈里-莱布尼茨级数计算 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;
}
如何编写 pi 计算,以便它计算直到 n 的值?
您可以使用增量 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));
您还可以进行以下操作;该函数将迭代 10M 次,并将 return 您的 PI 小数点后 n
位有效数字。
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);
我必须使用格雷戈里-莱布尼茨级数计算 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;
}
如何编写 pi 计算,以便它计算直到 n 的值?
您可以使用增量 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));
您还可以进行以下操作;该函数将迭代 10M 次,并将 return 您的 PI 小数点后 n
位有效数字。
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);