在 R 中,我想创建一个返回最小 n 的函数,使得自然对数的第 n 次重复给出小于 1 的值。例如:fun(9182) = 3 因为 ln(ln(ln(9182))) = 0,793 < 1。任何建议将不胜感激!
问问题
265 次
2 回答
2
logstar<-function(x){if (x<1) 0 else 1 + logstar(log(x))}
于 2013-10-04T20:03:33.750 回答
2
@mrip 的答案适用于单个值。如果你想要一个适用于向量的函数,你会想要使用ifelse()
而不是if
:
> logstar <- function(x){ifelse(x<1,0,1 + logstar(ifelse(x<1,x,log(x))))}
> x = c(0.5,1,100,10000,1E8)
> logstar(x)
[1] 0 1 3 3 4
ifelse()
递归调用中的防止logstar()
在某些情况下log()
生成。NaN
于 2013-10-04T20:16:25.193 回答