【问题标题】:Leibniz Series Java莱布尼茨系列 Java
【发布时间】:2013-10-21 14:49:07
【问题描述】:

我正在尝试使用 Leibniz 系列来近似 pi,我得到的问题是:

"您可以使用以下系列来近似 π:

 pi = 4(1 - 1/3 + 1/5 - 1/7 + 1/9 - 1/11 + ((-1)^i+1)/2i - 1

编写一个程序,显示 i = 10,000, 20,000, ..., 到 100,000" 的 π 值

现在问题本身相当模糊,这主要是我想要帮助的,到目前为止我已经到了这里。

public class Q2 {

public static void main(String[] args) 
{
    for  (int i = 1; i <= 10000; i++)
    {
       double pi = 4* (1 - (1/3) + (1/5) - (1/7) + (1/9) - (1/11) +
              (Math.pow((-1),(i+1)) ) / ((2*i)-1));

       if(i%10000==0)
        {
            System.out.println();
        }
    }
}

}

问题是当系统运行时没有结果,如果运行额外的 else 语句来检查 pi 的值,它会返回 4.000200030004501 和 3.999799949987497 的变化。

 if(i%10000==0)
 {
 System.out.println();
 }
 else
 {
 System.out.print(pi);
 }

我是否错误地增加了 i?我觉得我脸上的问题有一个方面,我想念它! 谢谢, 戴夫。

【问题讨论】:

  • 这个问题似乎每周被问一次。如果您想将两个数字相除而不四舍五入为整数,则其中一个必须是非整数类型。例如,1.0/3,而不是 1/3。看看stackoverflow.com/questions/13668007/…
  • 执行 Math.pow() 调用也不是绝对必要的——这是一种方便的数学符号来捕获交替符号,但只检查 i 是偶数还是奇数会更有效,并在必要时翻转该术语的符号。

标签: java series


【解决方案1】:

您误解了问题中的系列。他们的意思是该系列的第 i 个元素由下式给出:

((-1)^i+1)/(2i - 1)  [i starting with 1 in this notation]

所以直到元素 2 的系列是:

4 * ( -1^(1+1) / (2*1-1)   +   -1^(2+1) / (2*2-1)   ) = 4*(1 - 1/3)

所以问题列出了系列中的第 6 个元素,但系列的长度是无限的。这意味着对于给定的 i (TARGET) 值,计算如下所示:

double sum = 0;
for (int i=1; i<TARGET; i++) {
   double element = Math.pow(-1,i+1) / (2*i + 1); //element i
   sum += element; // add element i to the results so far
}
double result = 4*sum;

请参阅wikipedia 了解有关本系列的更多详细信息(注意,维基百科文章从 i=0 开始计数)

【讨论】:

  • 我也这么想,感谢一百万的帮助。我没有为您的答案投票的声誉,但一旦我这样做,我一定会回来投票。
【解决方案2】:

不确定这个问题是否仍然相关,但答案可能是这样的

public class Calculate_PI 
{ 
   public static void main(String[] args)
  {
    double pi = 0;      

    for(int i = 10_000; i <= 100_000; i += 10_000)
    {
        double variablePart = 0;
        for(int j = 1; j <= i; j++)
        {
            variablePart += (Math.pow(-1, j+1) / ((2 * j) - 1));
        }
        pi = 4 * variablePart;
        System.out.printf("For i = %d\npi = %12.9f\n", i,pi);
    }
  }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-11
    • 1970-01-01
    • 1970-01-01
    • 2020-11-20
    • 1970-01-01
    • 2014-12-14
    相关资源
    最近更新 更多