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

为何我用R实现沃利斯乘积计算无法得到圆周率pi的正确值

代码错误原因
  • 未实现累乘逻辑:当前代码循环中每次直接给r赋值为当前迭代项的计算结果,循环结束后r仅保留了i=n时的单值,没有累计所有项的乘积,不符合沃利斯乘积的计算规则
  • 累乘变量未初始化:没有给r设置初始值1,累乘操作缺少计算起点
修正后代码
W <- function(n) {
    r <- 1
    for (i in 1:n) {
        r <- r * 2*i/(2*i-1) * 2*i/(2*i+1)
    }
    print(r*2)
}
运行验证

执行修正后的代码可以看到:

  • W(10)输出约为3.067703
  • W(50)输出约为3.125781
  • 随着n的取值增大,结果会逐渐逼近圆周率pi的真实值3.1415926...

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 08:06:04