java - 使用 MacLaurin Series 使用 Java 递归计算 e^x

标签 java recursion

我需要编写一个递归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/

相关文章:

java - Jsoup-从网站获取某些属性

java - 使用 GSON 解析多种类型的数组

python - 如何在python中递归计算pi?

java - 编写此递归函数的另一种方法?

java - 使用装饰器模式装饰 JLabel

java - 并行对两个数组的每个元素求和

Django递归模型

Java递归插入排序?

algorithm - 关于内存使用的递归与迭代

java - 打印两次