我需要编写一个递归java方法来计算带有签名的e^x,称为e(x,n),
public static double eThree(double x, long n)
并且它必须使用 MacLaurin 级数来计算 e^x,这是以下观察结果:
1 + x(1 + x/2( 1 + x/3(1 + x/4(1 + ... ))))
e(x,0)= 1 A call to this would return a result of 1
在之前的一些帮助下,我能够制作一个不需要这种格式的格式,但我不确定要编写什么代码才能使用上面的格式。谢谢大家,非常感谢您提供的任何帮助!
最佳答案
这对你有用吗?我相信它实现了该算法,但它不产生 x^n。
public static double eThree(double x, long n) {
return eThree(x, n, 1);
}
private static double eThree(double x, long n, int div) {
double d = 1;
if (n > 0) {
d = d + (x / div) * (eThree(x, n - 1, div + 1));
}
return d;
}
它似乎认为:
2^0 = 1.0
2^1 = 3.0
2^2 = 5.0
2^3 = 6.333333333333333
2^4 = 7.0
2^5 = 7.266666666666667
2^6 = 7.355555555555555
2^7 = 7.3809523809523805
2^8 = 7.387301587301588
2^9 = 7.388712522045855
关于java - 使用 MacLaurin Series 使用 Java 递归计算 e^x,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22065279/