Python-Leibniz求和

Python-Leibniz求和,python,Python,我试图用python获得leibniz求和,但是,用我的代码,得到的值略有不同。我不明白为什么它没有给我正确的答案 import math def estimate_pi( iterations ): pi = 0.0 for n in range(0,iterations+1): pi = pi + (math.pow(-1,n)/((2*n)+1)) return pi print("How many iterations?") print(esti

我试图用python获得leibniz求和,但是,用我的代码,得到的值略有不同。我不明白为什么它没有给我正确的答案

import math
def estimate_pi( iterations ):
    pi = 0.0
    for n in range(0,iterations+1):
        pi = pi + (math.pow(-1,n)/((2*n)+1))
    return pi

print("How many iterations?")
print(estimate_pi(int(input())))

求和不估计
pi
,而是估计
pi/4
。因此,请将代码更改为:

def estimate_pi( iterations ):
    sum = 0.0
    for n in range(iterations):
        sum += (math.pow(-1,n)/((2*n)+1))
    # sum now estimates pi/4, so return sum * 4 ~ (pi/4) * 4 ~ pi
    return (sum * 4)

print estimate_pi(100000)
输出:

3.14158265359

是的,但它给我的值和其他求和的π代码略有不同:(我打算用*4得到一个π值。但在此之前,我认为我的方程在某些方面是错误的point@buq333除了将返回值乘以
4
,我还校正了范围以反映求和方程(即
范围(迭代)
而不是
范围(迭代次数+1)
。哦,没关系。“迭代次数+1”是原因。我改为“迭代次数”,它是固定的。谢谢你。我的荣幸:)祝你好运!