Leibniz数字行的Python脚本

时间:2016-11-15 20:26:05

标签: python pi

我正在尝试用Python 2.7编写简单的脚本来计算Pi。我对Leibniz公式感兴趣:

π=(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 个答案:

答案 0 :(得分:0)

这个有效:

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()

答案 1 :(得分:0)

如果您想使用xy方法,@ ukimiku的答案会有效。

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

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

    print p

对于range(10000),这将打印

3.14149265359