gpt4 book ai didi

Python Pi 近似

转载 作者:太空宇宙 更新时间:2023-11-04 01:09:17 26 4
gpt4 key购买 nike

所以我必须用以下方法来近似 Pi:4*(1-1/3+1/5-1/7+1/9-...)。它也应该基于迭代次数。所以函数应该是这样的:

>>> piApprox(1)
4.0
>>> piApprox(10)
3.04183961893
>>> piApprox(300)
3.13825932952

但它是这样工作的:

>>> piApprox(1)
4.0
>>> piApprox(10)
2.8571428571428577
>>> piApprox(300)
2.673322240709928

我做错了什么?这是代码:

def piApprox(num):
pi=4.0
k=1.0
est=1.0
while 1<num:
k+=2
est=est-(1/k)+1/(k+2)
num=num-1

return pi*est

最佳答案

这就是您要计算的内容:

4*(1-1/3+1/5-1/5+1/7-1/7+1/9...)

您可以通过在循环末尾添加 k += 2 来修复它:

def piApprox(num):
pi=4.0
k=1.0
est=1.0
while 1<num:
k+=2
est=est-(1/k)+1/(k+2)
num=num-1
k+=2
return pi*est

此外,您计算迭代次数的方式也是错误的,因为您同时添加了两个元素。

这是一个更简洁的版本,它返回您期望的 10 次和 300 次迭代的输出:

def approximate_pi(rank):
value = 0
for k in xrange(1, 2*rank+1, 2):
sign = -(k % 4 - 2)
value += float(sign) / k
return 4 * value

下面是相同的代码,但更紧凑:

def approximate_pi(rank):
return 4 * sum(-float(k%4 - 2) / k for k in xrange(1, 2*rank+1, 2))

关于Python Pi 近似,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28699577/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com