我正在做一个练习,要求一个使用莱布尼茨公式逼近 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))
有谁知道更好的功能?