21xrx.com
2024-11-22 10:00:34 Friday
登录
文章检索 我的文章 写文章
Java 求平方根算法及实现
2023-06-11 14:28:01 深夜i     --     --
Java 求平方根 牛顿迭代法 二分查找法 代码实现

在 Java 编程中,求一个数的平方根是非常常见的操作。但是,Java 中并没有现成的库函数可以直接使用,所以我们需要自己实现求平方根的算法。本文将介绍两种常用的算法:牛顿迭代法和二分查找法,并附上完整的 Java 代码实现。

1. 牛顿迭代法

牛顿迭代法是一种用途广泛的求根算法,可以用于求解各种方程的根,其中包括求平方根。其基本思想是通过不断逼近根的位置,使得逼近到足够精度时,即可得到根的近似值。

下面是 Java 实现牛顿迭代求平方根的代码:


public static double sqrt(double x) {

  double eps = 1E-15;

  double t = x;

  while (Math.abs(t - x / t) > eps * t) {

    t = (x / t + t) / 2.0;

  }

  return t;

}

其中,eps 表示所需精度。通过循环不断逼近求得平方根。

2. 二分查找法

二分查找法是一种常用的查找算法,其基本思想是通过不断将查找范围缩小一半,最终找到需要的数值。

下面是 Java 实现二分查找求平方根的代码:


public static double sqrt2(double x) {

  if (x < 0) {

    throw new IllegalArgumentException("Negative parameter: " + x);

  }

  if (x == 0)

    return 0;

  

  double left = 0, right = x;

  while (true) {

    double mid = (left + right) / 2;

    if (Math.abs(mid * mid - x) < 1E-15)

      return mid;

    

    if (mid * mid < x)

      left = mid;

     else

      right = mid;

    

  }

}

在上述代码中,首先判断输入是否小于 0,然后采用二分查找的方法不断逼近解。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复
    相似文章