R语言:如何r语言编写程序求e的近似值,精确到10-5

Python015

R语言:如何r语言编写程序求e的近似值,精确到10-5,第1张

最简单但计算量最大的是泰勒公式: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 <- 1L

ni <- 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时,精度就已经达到要求了。

#include <stdio.h>

double fac(int n)

{

    if(n<2)

        return 1.0

    return n*fac(n-1)

}

int main()

{

    int i

    double e

    for(e=0,i=01/fac(i)>1e-6++i)

        e+=1.0/fac(i)

    printf("%lf\n",e)

    return 0

}