最简单但计算量最大的是泰勒公式: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时,精度就已经达到要求了。
0.05374这是科学记数法。
把一个绝对值小于1(或者大于等于10)的实数记为a×10^n的形式(其中1≤|a|<10),这种记数法叫做科学记数法。例如19971400000000=1.99714×10^13。计算器或电脑表达10的的幂是一般是用E或e,也就是1.99714E13=19971400000000。
5.374e-02就是0.05374。