目前我正在开发一个 R 项目,其中包含以下代码。
vec <- 1:25
fib <- function(x)
{ if (x==0) return (0)
if (x==1) return (1)
if (x==2) return(2)
return(fib(x-1)+fib(x-2))
}
lapply(vec,fib)
我只是想知道,R 如何在这样的代码中计算斐波那契函数?更简单地说,当涉及到向量“vec”中的数字 25 时,R 是否会计算整个函数,或者 R 是否可以使用 fib(24) 和 fib(23) 的值来计算 fib(25),因为它们已经被计算过了?
最佳答案
默认情况下,它会一一计算所有递归值,但您可以使用像 memoise
这样的外部包来缓存以前的值,或者自己做。看看following blog这也使用斐波那契函数显示了这一点。
关于r - R 可以保存函数创建的对象以供将来使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39620361/