python中用waills公式求圆周率

even = np.arange(2,1000001,2) one_below_even = even - 1 one_above_even = even + 1 2 * np.prod(even/one_below_even)* np.prod(even/one_above_even)
请问我这个哪里错了呀 运行不出来

该回答引用GPTᴼᴾᴱᴺᴬᴵ
你的代码中缺少圆周率的计算部分,你需要在最后加上wells公式的计算公式:

pi = 2 * np.prod(even/one_below_even)* np.prod(even/one_above_even)
pi = 1/pi


完整代码如下:

import numpy as np

even = np.arange(2,1000001,2)
one_below_even = even - 1
one_above_even = even + 1

pi = 2 * np.prod(even/one_below_even)* np.prod(even/one_above_even)
pi = 1/pi

print(pi)


注意,使用这种方法计算圆周率会比其他更为精确的方法(如数值积分方法)慢很多。

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^