所以,我被要求编写沃利斯产品的代码,它并不复杂。所以我做了一个代码,但显然,它只能为Wallis(1)
工作,而不能为其余的工作。有人能帮我吗?谢谢您!在
def Wallis (n):
result = 1
for count in range(2, n+2, 2):
result = result * (count**2/((count-1)*(count+1)))
return result
瓦利斯积的计算公式
^{pr2}$输出
Wallis(1) = (2*2)/(3*5) = 0.267
Wallis(2) = Wallis(1) * (4*4)/(5*7) = 0.122
主要是你的射程指令是错误的:
或者,您可以将复杂性转移到公式中,即:
^{pr2}$正如其他人所说,你的
range()
需要改变。在对于n=3
将打印
^{pr2}${但你也需要。在
正如Python文档所说
不包括
stop
的含义。在这里},您可以使用
^{4}$step
是{而且求幂比乘法要贵。所以
比
所以修改后的版本可以是
注意,
Wallis
返回的值只有Pi值的一半。在您可以将
return
语句修改为如果你想的话。在
代码的问题是}相同,但是下面的{}应该与{}相同,但实际上是{}。
count
等于等式中的2*n
,因此在(count**2/((count-1)*(count+1)))
,count**2
与{count+1
也是如此。在我做了我自己的版本,应该会对你有所帮助(虽然我使用了一个不同的方程式,在https://www.wikiwand.com/en/Wallis_product)
当
limit
越高,它就越接近半π。在相关问题 更多 >
编程相关推荐