❶ R语言:如何r语言编写程序求e的近似值,精确到10-5
最简单但计算量最大的是泰勒公式:e=1+1/1!+1/2!+1/3!+1/4!+...
下面是求e的R语言函数:
e_fun<-function(n){
etemp<-1
ni<-1L
for(iin1: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时,精度就已经达到要求了。
❷ 用Java语言编程,计算数学常数e的值,e=1+1/1!+1/2!+1/3!+.....。
package e;
public class Main { public static void main(String[] args) {
double e=1,sum=1; //e的初值为1,sum用来存放n!
int i=1;
while(sum<Math.pow(10, 1000000)){ //当sum大于10的1000000次方的时候我们认为已近似的
sum=i*sum; 相等了,如果这回个数设置的更大答就会更加接近e
e=1.0/sum+e;
i++;
}
System.out.println("e="+e);
}} 程序是经验证的,可以在编译环境上运行!绝对没问题~