【发布时间】:2010-12-01 12:21:14
【问题描述】:
在 R 中计算递归序列的最快方法是什么,定义为
x[1] <- x1
x[n] <- f(x[n-1])
我假设适当长度的向量 x 是预先分配的。有没有比循环更聪明的方法?
变体:将其扩展到向量:
x[,1] <- x1
x[,n] <- f(x[,n-1])
【问题讨论】:
-
f(x) 可以表达为 cumsum()'s, cumprod()'s 的组合吗?
-
几个 cmets:i) 在这里迭代而不是递归并不能节省很多时间; ii)似乎加速事情的唯一方法是编写C代码,也许是内联的。我希望有一个包可以以一种富有表现力的方式为我完成这项工作。不是这样的。
-
是 f() 非常慢还是 n 非常大的问题?如果是后一种情况,您可能可以在 R 中进行改进,但是,如果是前一种情况,在 C 中重写 f() 可能是必要的......