Skip to main content
 首页 » 编程设计

python之π 的莱布尼茨公式之这有什么用吗 (Python)

2025年05月04日15bjzhanghao

我正在做一个练习,要求一个使用莱布尼茨公式逼近 pi 值的函数。这些是维基百科上的解释:

逻辑思维对我来说很容易,但我没有接受过多少正规的数学教育,所以我对第二个最左边的符号代表什么有点迷茫。我试图使代码 pi = ( (-1)**n/(2*n + 1) ) * 4,但返回了 1.9999990000005e-06 3.14159 ...,所以我改用了累加器模式(因为指南中提到的那一章也提到了它们)并且效果很好。但是,鉴于 Python 专注于简单性和使程序尽可能短,我不禁认为它有些做作,并且可能有更好的方法来做到这一点。这是完整的代码:

def myPi(n): 
    denominator = 1 
    addto = 1 
 
    for i in range(n): 
        denominator = denominator + 2 
        addto = addto - (1/denominator) 
        denominator = denominator + 2 
        addto = addto + (1/denominator) 
 
    pi = addto * 4 
 
    return(pi) 
 
print(myPi(1000000)) 

有谁知道更好的功能吗?

请您参考如下方法:

莱布尼茨公式可以毫不费力地直接翻译成 Python:

>>> steps = 1000000 
>>> sum((-1.0)**n / (2.0*n+1.0) for n in reversed(range(steps))) * 4 
3.1415916535897934