gpt4 book ai didi

python - python 中的 Gregory-Leibniz 系列函数 - 例如。 8.3 来自编码员的学徒

转载 作者:行者123 更新时间:2023-12-04 14:51:03 25 4
gpt4 key购买 nike

我已经找到了“The Coder's Apprentice Learning Programming with Python 3”练习 8.3 的解决方案,它与作者的解决方案略有不同。我想在这里问一下这是否正确。

练习文本如下:Grerory-Leibnitz 级数将 pi 近似为 4 ∗ ( 1/1 − 1/3 + 1/5 −1/7 + 1/9... ) 。编写一个函数,根据该级数返回 pi 的近似值。该函数有一个参数,即一个整数,表示必须计算括号之间的项数。

def leibnitz(n):
tot = 0
i=1
c=1
for x in range(0,n):
if c % 2 != 0:
tot = tot + (+1.0/i)
i=i+2
c=c+1
elif c % 2 == 0:
tot = tot + (-1.0/i)
i=i+2
c=c+1
return tot*4

打印(莱布尼茨(98))

#通过固定计数器“c”,我们可以设法确定序列的下一个分数是正分数还是负分数。系列中的第一个分数 (1/1) 是正数,因此我们从“c”= 1 的奇数计数器开始。然后只要计数器为偶数,我们就会考虑负分数等等。

这个解决方案对吗?


我在上一个版本中犯了一个错误,现在更新了它。

最佳答案

是的,这个方法非常有效。一种改进方法是删除变量 c 并将其替换为 x+1

此外,只是为了好玩,如果你导入数学,你可以使用常量math.pi来获取所涉及的错误:

import math
def leibnitz(n):
tot = 0
i=1
for x in range(0,n):
if (x+1) % 2 != 0:
tot = tot + (+1.0/i)
i=i+2
elif (x+1) % 2 == 0:
tot = tot + (-1.0/i)
i=i+2
return tot*4

print(math.pi - leibnitz(98))

关于python - python 中的 Gregory-Leibniz 系列函数 - 例如。 8.3 来自编码员的学徒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69101186/

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