首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用Gregory级数计算JavaScript中的Pi

用Gregory级数计算JavaScript中的Pi
EN

Stack Overflow用户
提问于 2016-09-19 13:55:53
回答 2查看 3K关注 0票数 10

我必须用Gregory级数计算Pi值:

pi =4*(1/1- 1/3) + (1/5 - 1/7) + (1/9 - 1/11) +.

我想在JavaScript中编写一个函数,它将以需要显示为参数的数字数作为参数。但我不确定我的思维方式在这里是否还好。

到目前为止,我得到的是:

代码语言:javascript
复制
function pi(n) {
  var pi = 0;
  for (i=1; i <= n; i+2) {
    pi = 4 * ((1/i) + (1/(i+2)))
  }
  return pi;
}

我如何写π计算,以便它计算值直到n?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-09-19 14:03:12

您可以使用4的增量,并在函数的末尾与4相乘。

n不是数字的数目,而是序列值的计数器。

代码语言:javascript
复制
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));

票数 7
EN

Stack Overflow用户

发布于 2016-09-19 14:19:04

您还可以这样做:函数将迭代10M次,并在小数点之后返回带有n有效数字的PI。

代码语言:javascript
复制
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);

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39574989

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档