-1

在 R 中,我想创建一个返回最小 n 的函数,使得自然对数的第 n 次重复给出小于 1 的值。例如:fun(9182) = 3 因为 ln(ln(ln(9182))) = 0,793 < 1。任何建议将不胜感激!

4

2 回答 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 回答