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

基于莱布尼茨公式近似π值:两款不同步长程序结果差异问询

为啥步长2和步长4的莱布尼茨π逼近程序结果不一样?

先帮你回忆下莱布尼茨级数的标准形式,这是你程序的核心依据:

π/4 = 1 - 1/3 + 1/5 - 1/7 + 1/9 - 1/11 + ...

这个级数的关键在于:每一项的分母是连续奇数(每次加2,也就是步长2),符号正负交替。现在咱们拆解两种步长的差异:

1. 步长为2的程序:严格遵循原级数规则

这种程序完全按莱布尼茨公式的定义执行——每一项依次计算:先加1,再减1/3,再加1/5,再减1/7…… 累加的项数越多,结果会逐步收敛到π/4,乘以4就能得到π的近似值。比如前4项的和是 1 - 1/3 + 1/5 - 1/7 ≈ 0.7546,乘4后约为3.018,已经开始接近π了。

2. 步长为4的程序:本质是只计算了级数的部分项

当你把步长设为4时,相当于直接跳过了原级数里的一半项,彻底破坏了交替收敛的核心逻辑,常见的两种错误场景:

  • 只取同符号的项:比如只计算1、1/5、1/9…… 或者只计算-1/3、-1/7、-1/11…… 这种情况下你丢掉了原级数里正负抵消的关键部分,结果必然偏离π。比如只取前2个正项:1 + 1/5 = 1.2,乘4后是4.8,和π的差距非常大;
  • 符号规则未同步调整:如果步长改成4,但符号还是按步长2的规则切换(比如每算一项就换符号),会出现连续加两个正项或连续减两个负项的情况,同样打破了交替平衡,结果自然不对。

核心原因总结

莱布尼茨级数能收敛到π/4,全靠正负交替+连续奇数分母的组合——每一个正项都会被后续的负项抵消一部分,逐步逼近准确值。步长4的程序等于跳过了一半的抵消项,计算的根本不是原级数的和,结果当然和步长2的程序不同。

另外提一句:莱布尼茨级数本身收敛速度极慢,步长2的程序都需要计算几万项才能得到π的前几位准确值;步长4的程序不仅结果错误,收敛性只会更差。

要是能贴出你的具体代码,我还能帮你精准定位哪里写错了,但从原理层面来说,核心就是步长4的程序没有遵循莱布尼茨级数的完整规则~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 10:05:39