代码之家  ›  专栏  ›  技术社区  ›  Alexey Kirov

莱布尼茨数行的Python脚本

  •  0
  • Alexey Kirov  · 技术社区  · 9 年前

    我试图用Python 2.7编写简单的脚本来计算Pi。我对莱布尼茨公式感兴趣:

    = (4/1) - (4/3) + (4/5) - (4/7) + (4/9) - (4/11) + (4/13) - (4/15) ...

    所以我认为“(4/1)-(4/3)”是X,1-3-5是y,y+2,y+4。。。。

    我写了这个脚本:

    def pi():
        p = 0.0
        y = 1.0
        x = 4.0/y - 4.0/(y+2.0)
        for i in range(10000):
            p = p + x
            y += 4.0
        print p
    
    pi()
    

    2 回复  |  直到 9 年前
        1
  •  0
  •   Ukimiku    9 年前

    这个工作原理:

    def pi():
        p = 0.0
        y = 3.0
        x = 4.0 - 4/y
        for i in range(5000):
            y += 2
            x = x + 4/y
            y += 2
            x = x - 4/y
            print x
    
    pi()
    
        2
  •  0
  •   Keiwan Thirler    9 年前

    x y 方法

    下面是使用实际公式的替代方法:

    def pi():
        p = 0.0
        for i in range(10000):
            p += 4 * ((-1)**i) / float(2 * i + 1)
    
        print p
    

    对于 range(10000) 这将打印

    3.14149265359