❶ 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);
}} 程序是經驗證的,可以在編譯環境上運行!絕對沒問題~