我刚开始学习Python,我在编写函数时遇到了问题。
以下是计算π近似值的有限系列: π= 4/1 - 4/3 + 4/5 - 4/7 + 4/9 - 4/11 ......
我正在尝试编写一个函数,该函数将浮点值误差作为参数,并通过计算上述总和,逐项计算误差内的常数π,直到当前总和与当前总和之差的绝对值为止。之前的总和(少一个术语)不大于错误。一旦函数发现差值小于误差,它就应该返回新的总和。
以下显示了在某些示例中执行此功能:
>>> aprPi(0.01)
3.1465677471829556
>>> aprPi(0.0000001)
3.1415927035898146
我仍然不知道如何计算它。有人能帮助我吗?
这是我到目前为止所做的:
def aprPi(err):
first = 4/test(0) - 4/test(1)
second = first + 4/test(2) - 4/test(3)
n=4
while abs(first - second) > err:
first = second
second = second + test(n)
n +=1
return second
def test(n):
sum = 1
for i in range(n):
sum += 2
return sum
谢谢
答案 0 :(得分:1)
您可以这样做:
mypie = 0
denominator = 1
sign = 1
while denominator < 100:
mypie = mypie + (4.0 / denominator) * sign
sign = -sign
denominator = denominator + 2