您的位置:首页 > 其它

利用牛顿开方法开任意次方

2015-06-05 21:32 274 查看
牛顿开方法原理在http://www.guokr.com/question/461510/有详细介绍,只需要记住下面的公式即可;



以下是根据上述公式写的代码,其中n表示迭代次数,a表示被开方数,k表示开方次数

package ibbe.scheme.keydistrubution;

import java.lang.Math;

public class Nuton {

public static double root(int n) {
double k = 2;
double a = 3;
double flg = 0;
if (n == 0) {
return 1;
} else {
// flg=Math.pow(root(n-1), k-1);
return ((k - 1) / k) * root(n - 1)
+ (a / (k * (Math.pow(root(n - 1), k - 1))));
}
}

// 用来求2次方根,这个是百度到的求2次方根的代码
static double NewtonMethod(double fToBeSqrted) {
double x = 1.0;
while (Math.abs(x * x - fToBeSqrted) > 1e-5) {
x = (x + fToBeSqrted / x) / 2;
}

return x;
}

public static void main(String[] args) {
System.out.println(root(7));
System.out.println(NewtonMethod(2));
}

}
运行结果:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: