Calculate Pi 计算n次Pi

一般常用计算Pi的公式有2个, 一个是Nilakantha序列, 另一个是Leibniz序列.

先介绍后一个,Leibinz序列, Leibinz是个神牛, 有多神呢..如果一个人在一个领域到了极限, 我们称之为大牛, 然而神牛是通吃 – -. 到底有多通吃..请自行Wiki..(他的wiki的长度有10个下拉页之长).前言毕.

Leibinz给出一个非常简单的计算π的方式, 有多简单呢:请看code

 public double Leibniz(int times){
        double sum = 0;
        for (int i = 0; i < times; i++) {
            sum += Math.pow(-1,i) * (double) 4/(2*i+1);
        }
        return sum;
 }

注意, 这里的input是次数.

对应的通项公式为:

imgres

Nilakantha,是Nilakantha Somayaji发明的, 这人一直研究无穷序列, 贡献嘛…最出名的就是这个公式了, 不过在实际运算中, Nilakantha的速度要比Leibinz快.

  public double Nilakantha(int times){
        double denominator = 2;
        double sum = 3;
        for (int i = 0; i < times; i++) {
            sum += Math.pow(-1,i) * (double) (4/(denominator * (denominator+1)*(denominator+2)));
            denominator += 2;
        }
        return sum;
   }

对应的通项公式为: