1、控制结构
(1)条件语句
if(条件) 表达式1 else 表达式2
(2)循环(loops)
for :for(变量 in 变量) 表达式
while while(条件)表达式
repeat repeat 表达式
三者略有区别:若知道终止条件(循环次数)就用for循环,若无法知道运行次数,则用while和repeat循环,repeat循环利用循环体的break语句跳出循环
最简单但计算量最大的是泰勒公式:e=1+1/1!+1/2!+1/3!+1/4!+...
下面是求e的R语言函数:
e_fun <- function(n) {etemp <- 1
ni <- 1L
for (i in 1:n) {
etemp <- etemp + 1 / ni
ni <- ni * (i + 1)
}
return(etemp)
}
不过你题目中要求的是求到精度为0.00001就停止,所以可以采用repeat循环:
i <- 1Lni <- 1L
etemp <- 1
repeat {
etemp1 <- etemp
etemp <- etemp + 1 / ni
ni <- ni * (i + 1)
i <- i + 1
if (etemp - etemp1 < 0.00001) break
}
i
etemp
在最后可以看到,求到i=10时,精度就已经达到要求了。