Ani*_*ita 0 recursion r function
我有以下代码:
N <- 3
K <- 100
S0 <- 100
u <- 1.007
d <- 1/u
r <- 0.002
a <- 1/6
ptil <- (1+r-d)/(u-d)
qtil <- 1-ptil
VN <- function(n,s,y){
V <- 1/(1+r)*(ptil*VN(n+1,u*s,a*u*s+y)+qtil*VN(n+1,s*d, a*d*s+y))
if (n < N){
return(V)
}
if (n == N){
return(max(c(0,y-K)))
}
}
Run Code Online (Sandbox Code Playgroud)
当我计算时VN(0,S0, aS0),我得到以下错误:Error: evaluation nested too deeply: infinite recursion / options(expressions=)?.我的代码出了什么问题?
VN在第一行立即再次呼叫VN.哪个会再次呼叫VN.然后再次.
我不知道这段代码应该做什么,但递归算法需要在调用自己之前先检查它们的触底情况.我怀疑你只需将函数的第一行移动到第一if个子句中.