我的递归函数中的问题在R中起作用

我正在努力编写一个递归函数。 我需要编写此递归方程式的代码:

我写了这张纸条:

alfa <- function(n){
  if(n == 0){
    return(1)
  }   
  if(n == 1) {
    return(0)
  }
  else {
    alf<-0
    alf = (1/ab(0)) * (alfa(n-2)-(sum(sapply(0:(n-2), function(k){ab(n-1-k)*alfa(k+i)}))))
    return(alf)
  }
}  

ab(i),a_i(i) and b_i(i) functions:

  ab<-function(i){
      sas<-0
      for (x1 in 0:2){
        for (x2 in 0:2){
          for (y in 0:2){
            if(x1+x2+y==i){
              sum=a_i(x1)*a_i(x2)*b_i(y)
              sas=sas+sum
            }
          }
        }
      }
      return(sas)
    }
    a_i <- function(k){
      if (k == 0) return (3/4)
      if (k == 1) return (1/8)
      if (k == 2) return (1/8)
      else return(0)
    }

    b_i <- function(k){
      if (k == 0) return (1/10)
      if (k == 1) return (8/10)
      if (k == 2) return (1/10)
      else return(0)
    }

但是此代码不起作用。 错误:评估嵌套太深:无限递归/选项(表达式=)?打包时出错: 请帮助我理解。

评论