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

如何在R中编写仅以n为输入的拉马努金嵌套根式计算函数

R语言实现拉马努金嵌套根式计算函数

拉马努金嵌套根式的展开形式为:$\sqrt{1 + 2\sqrt{1 + 3\sqrt{1 + ... + n\sqrt{1}}}},当n趋近于无穷大时,该式的极限值为3。

实现思路

  • 优先采用从最内层往外层迭代计算的逻辑,避免递归深度过大导致的栈溢出问题,计算效率更高
  • 初始值设为最内层的计算结果1,从k从n倒序遍历到2,逐层向外计算即可得到n层嵌套的结果

代码实现

ramanujan_nested_root <- function(n) {
  # 输入参数合法性校验
  if (!is.numeric(n) || n < 2 || length(n) != 1 || round(n) != n) {
    stop("输入参数n必须为大于等于2的正整数")
  }
  res <- 1
  # 从内向外迭代计算
  for (k in n:2) {
    res <- sqrt(1 + k * res)
  }
  return(res)
}

使用示例

# 计算嵌套到第5层的结果
ramanujan_nested_root(5)
# 计算嵌套到第50层的结果,已经非常接近理论极限3
ramanujan_nested_root(50)

注意事项

n取值越大,计算结果精度越高,当n≥30时计算结果和极限值3的误差已经小于1e-6,可满足绝大多数场景的精度需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 12:06:04