本帖最后由 冥月影 于 2019-10-8 17:17 编辑
我实在是太菜了。。。
题目:
代码:
[Java] 纯文本查看 复制代码 package unit7;
public class Test02 {
public static void main(String[] args) {
// TODO 自动生成的方法存根
System.out.println("gauss(1, 100) = " + gauss(1, 100));
System.out.println("Math.exp((-1)^2) = " + Math.exp(Math.pow((-1), 2)));
}
/**
* 要想计算 exp(-x^2) 的值,一种办法是用如下的无穷级数展开:
* exp(-x^2) = 1 - x^2 + x^4 / 2 - x^6 +...
* 在上述级数中,第 i 项为“(-1)^i * x^2i / i!”。请编写一个名为 gauss 的方法,它接受形参 x 和 n,
* 并返回上述级数中前 n 项的和。编写这个方法时,可不能使用方法 factorial 和 pow 哟!
* [url=home.php?mod=space&uid=952169]@Param[/url] x
* @param n n越大精度越高
* @return
*/
public static double gauss(double x, int n) {
double tmp = 1;
double sum = 1;
for(int i = 1; i < n; i++) {
/*
* 1 -1 * x*x -1*-1 * x*x*x*x -1*-1*-1 * x*x*x*x*x*x
*
* i! i! i!
*
*
*/
tmp = tmp * -1*x*x / i;
sum = sum + tmp;
// System.out.println(tmp);
}
return sum;
}
}
运行结果:
|