You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Wallis乘积计算π结果偏差大,是代码错误还是浮点误差?

用Wallis乘积计算π的问题分析

你的代码逻辑没问题,偏差大不是代码错误,而是Wallis乘积本身收敛极慢的特性导致的。

具体说明:

  • Wallis乘积的公式是 $\pi/2 = \prod_{i=1}^n \frac{4i2}{4i2-1}$,你的代码完全符合这个公式:初始乘积为1,依次乘每一项后再乘2得到π的近似值。
  • 100次迭代得到≈3.13是正常结果——这个方法收敛速度非常慢,想要接近π的真实值(3.14159265...)需要大量迭代:
    • 1000次迭代后,结果约为3.14058,误差缩小到0.001左右;
    • 10000次迭代后,结果约为3.14149,误差在0.0001级别;
    • 要得到小数点后5位的精度,需要几十万次迭代。

优化后的代码(更高效)

没必要用列表存储所有中间项,直接迭代计算乘积即可,节省内存:

product = 1.0
iterations = 10000
for i in range(1, iterations + 1):
    term = 4 * i**2 / (4 * i**2 - 1)
    product *= term
pi_approx = product * 2
print(pi_approx)

内容的提问来源于stack exchange,提问作者Álvaro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 20:57:32