gpt4 book ai didi

java - 不使用数学库计算 e^x

转载 作者:行者123 更新时间:2023-12-02 09:00:52 24 4
gpt4 key购买 nike

我知道不使用数学库计算 e^x 的答案已经可用。

但我有一个小小的疑问:

我定义了两个单独的函数:一个是计算 a^b 的幂函数,另一个是计算 n! 的阶乘函数。我将这些函数声明为静态的,因此不需要创建对象。

使用的逻辑:

    int l=1; // Declared a variable l and initialised it

int sum=1; // The sum variable would be value of e^x

for(l=1; ; l++)

{
sum= sum+ (power(x,l))/(factorial(l)) ; /* Here x is taken as user input and functions are
called*/
}

System.out.println("The value of e^ "+x +" is " +sum);

For infinite loop as shown in above code it says unreachable code.
If i put a condition on l like l<34 then code runs but for l<35 it prints that the value of e^x is infinity.

So how to get rid of this problem???

最佳答案

我发现这里有很多问题。首先,计算 e 的精确值是不可能的,因为它是一个无限循环。其次,所有变量,甚至可能是函数 Factorial 和 power 中的变量都被声明为 int,并且可以肯定 e 不是 int 并且计算不会返回 int。第三,我不明白幂函数的意图。第四,尝试将问题分解为较小的问题,并在单独的功能中解决它们。至于计算欧拉常数,这里有一个方法:

public static double calculateE(int noOfCalculations){

double e = 0;
for(int i=0;i<noOfCalculations;i++)
e += (double)1/factorial(i);
return e;

}

public static int factorial(int i) {
if(i==0)
return 1;
return i*factorial(i-1);
}

关于java - 不使用数学库计算 e^x,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60170897/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com