按下面的公式计算自然对数底e的值(n的值取20)
编写一个java程序jse.java,按下面的公式计算自然对数底e的值(n的值取20):
e=1+1/1!+1/2!+1/3!+1/4!+…1/n!
编写一个java程序jse.java,按下面的公式计算自然对数底e的值(n的值取20):
e=1+1/1!+1/2!+1/3!+1/4!+…1/n!
(
泰勒公式推出来的
e^x≈1+x+x^2/2!+x^3/3!+……+x^n/n!
当x=1时,e≈1+1+1/2!+1/3!+……+1/n!
取n=10,即可算出近似值e≈2.7182818。
)
在java世纪网看到这个面试题
紫竹给出两个程序
public class Test {
public static void main(String args[]) throws Exception {
// 方法1
double e = 1.0;
double t = 1.0;
for (int i = 1; i <= 20; i++) {
t /= i;
e += t;
}
System.out.println(e);
// 方法2,可惜我没看懂,很精妙
e = 0.0;
for (int i = 20; i > 0; i--) {
e = (e + 1.0) / i;
}
e++;
System.out.println(e);
}
}
主要讲方法2
其实这是一个归纳法
e=1+1/1!+1/2!+1/3!+1/4!+…1/n!
其实
1/20!+1/19!+18!
=1/(20*19!)+(1/19!)+1/18!
提出公共项
(1+1/20)*(1/19!)+1/18!
然后分解
1/19!=(1/(19*18!))=1/19*(1/18!)
上面的式子
换成为:=((1+1/20)*1/19+1)*1/18!
换成公式………