Java 如何计算1000次迭代中的欧拉数?
是否可以用一种方法计算1000次迭代中的欧拉数,并且首先需要计算阶乘 这是我的密码:Java 如何计算1000次迭代中的欧拉数?,java,math,eulers-number,Java,Math,Eulers Number,是否可以用一种方法计算1000次迭代中的欧拉数,并且首先需要计算阶乘 这是我的密码: import java.math.BigDecimal; public class EulerNumber { public static void main(String[] args) { for (int i = 1; i < 1000; i++) { } System.out.println("e = " + e); }
import java.math.BigDecimal;
public class EulerNumber {
public static void main(String[] args) {
for (int i = 1; i < 1000; i++) {
}
System.out.println("e = " + e);
}
private static double Euler() {
return 0;
}
}
import java.math.BigDecimal;
公共类EulerNumber{
公共静态void main(字符串[]args){
对于(inti=1;i<1000;i++){
}
System.out.println(“e=“+e”);
}
私有静态双Euler(){
返回0;
}
}
是的,可以计算超过2300个正确数字的近似值,部分和为1000项。误差小于2/1000!(震级为1/300^1000)
不,不需要计算阶乘,而且在任何情况下,都应该避免显式阶乘函数,只需从上一个项更新下一个项,或者从上一个项开始使用Horner-like格式。这很简单,如果我理解正确,您需要在1000次迭代中计算euler数,没有计算1000次,所以for循环应该移到Euler函数中
public class EulerNumber {
public static void main(String[] args) {
System.out.println("e = " + Euler());
}
private static double Euler() {
double e=1;
double f=1;
for ( int i=1; i <= 1000; i++) {
f = f * (1.0 / i);
if ( f == 0 ) break;
e += f;
}
return e;
}
}
公共类EulerNumber{
公共静态void main(字符串[]args){
System.out.println(“e=“+Euler());
}
私有静态双Euler(){
双e=1;
双f=1;
对于(int i=1;我请从代码中删除所有多余的空行,并确保其缩进是一致的!此外,您的问题很容易回答:是的,是的。我认为这不是您想要的答案–因此请让您的问题更精确!”