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

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

/*

2.718282

Press any key to continue

*/

#include <stdio.h>

unsigned Fact(unsigned n) {

unsigned i,fact = 1

for(i = 1 i <= n ++i)

fact *= i

return fact

}

double Exp(int n) {

double e = 1.0

int i

for(i = 1i <= ni++)

e +=  1.0/Fact(i)

return e

}

int main() {

printf("%lf\n",Exp(20))

return 0

}

#include <stdio.h>

int main() {

long int i, k

double n=1.0l/*n!

double s = 1.0l

for (i = 1i <50i++) {

n=n*i

s += 1.0 / n

}

printf("e = %lf\n", s)

getchar()

return 0

}

或:

public class Test{

public static void main(String args[]){

double sum=1,n=1

double e=1

for(n=1n<=10n++){

sum=sum*n

e+=1/sum}

System.out.println("e="+e)

}

}

得到的值为:2.7182818011463845...

随着n值越专大得到的e值越精属确。

扩展资料:

C语言包含的各种控制语句仅有9种,关键字也只有32 个,程序的编写要求不严格且以小写字母为主,对许多不必要的部分进行了精简。实际上,语句构成与硬件有关联的较少,且C语言本身不提供与硬件相关的输入输出、文件管理等功能,如需此类功能,需要通过配合编译系统所支持的各类库进行编程,故c语言拥有非常简洁的编译系统。

参考资料来源:百度百科-c语言


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/11057334.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-13
下一篇2023-05-13

发表评论

登录后才能评论

评论列表(0条)

    保存