【问题标题】:Using recursive function in R [Error C stack usage too close to limit]在 R 中使用递归函数 [错误 C 堆栈使用量太接近限制]
【发布时间】:2022-01-03 01:42:18
【问题描述】:

我必须使用递归函数来找到正整数的总和 \sum_{n}^{2n-1}k 。我试图使用 \sum_{n}^{2n-1}k = \sum_{1}^{2n-1}k - \sum_{1}^{n-1}k 因此,这是我使用递归函数进行编码的尝试。 代码:

penta_recur=function(n){
x = 2*n - 1
y = n - 1
if (n == 1){
return(1)
} else {
return(x+penta_recur(x-1)-y-penta_recur(y-1))
} 
}

但是,我的输出是一个错误:

Error: C stack usage  15923328 is too close to the limit

有没有办法解决我的问题?我认为问题肯定与第二条返回线有关,这导致我搞砸了整个代码。

【问题讨论】:

  • 您希望它何时停止?
  • @DonaldSeinen 您好,我希望它在 n =50 时停止。
  • 看看?Recall

标签: r recursion math


【解决方案1】:

您好,我想我已经回答了我的问题。我输入的代码:

P_n=function(n){
x=(3*n^2-n)/2
if(n == 0){
return (0)
}else{
return(x)
}
}

我想我应该更具体地说明我想在给定 n 个正整数的情况下找到五边形数的标题。谢谢您的帮助。虽然我想知道这是否算作递归函数。对此解决方案的任何意见

【讨论】:

    猜你喜欢
    • 2017-10-01
    • 2018-05-09
    • 2021-01-12
    • 1970-01-01
    • 2020-08-12
    • 2020-05-04
    • 2013-05-28
    • 2021-02-17
    • 1970-01-01
    相关资源
    最近更新 更多