【Leetcode】求解2的平方根
程序员文章站
2024-02-27 19:48:09
...
【Leetcode】求解2的平方根
牛顿迭代法计算2的平方根
牛顿迭代法
实现
/**
* 牛顿迭代法
*
* 若f(x) = x^2 - n,则 f(x) = 0的递推解是 X[k+1] = 1/2 * (X[k] + n/X[k])
*
* 当 n = 2时,f(x) = 0 的递推解是 X[k+1] = 1/2 * (X[k] + 2/X[k]),也即是2的平方根的递推解
*
* @return 解
*/
public double calRoot2ByNewton(){
double precise = 0.000001;
double result = 2;
while(true){
System.out.println("result = " + result);
result = 0.5 * (result + 2 / result);
if(Math.abs(2 - result * result) < precise) return result;
}
}
执行结果如下
result = 2.0
result = 1.5
result = 1.4166666666666665
result = 1.4142156862745097
result = 1.4142135623746899
可见,牛顿迭代法求解n的平方根是一个非常高效的方法。
二分查找计算2的平方根
上一篇: java的split方法使用示例
下一篇: 牛顿迭代法在JDK源代码中的应用
推荐阅读
-
【Leetcode】求解2的平方根
-
辣鸡刘的Leetcode之旅2【最长公共前缀,有效的括号,合并链表,删除排序数组中的重复项】
-
求解,怎样比较2个数组的大小解决方法
-
SVM入门(五)线性分类器的求解——问题的描述Part2 博客分类: 经验总结 SVM
-
神奇的没见过的技术大神们回围观啊mysql一次自动插入2条数据,求解。
-
求解codeception+yii2和jenkins的问题
-
[leetcode](4.21)2. 按字典序排列最小的等效字符串
-
关于mysql一次自动插入2条数据出现的原因,和求解决办法
-
使用mathematica11软件求解2/3/4阶矩阵的转置矩阵教程
-
Python求解平方根的方法