21xrx.com
2024-12-23 00:29:23 Monday
登录
文章检索 我的文章 写文章
Java中求开方的方法及实例代码
2023-06-11 17:08:59 深夜i     --     --
Java开方函数 Math类 牛顿迭代法

对于需要进行数学运算的程序来说,求根号会是常见的需求之一。那么在Java中,我们该如何来实现这个功能呢?接下来我们将会结合实例代码来详细介绍这个方法。

Java提供了Math类来进行数学运算,该类下有一个sqrt()函数,用于求平方根。我们可以直接调用该函数来实现开方的操作。下面是两个实例代码:


// 使用Math.sqrt()函数求开方

double d = Math.sqrt(16.0); // 4.0


// 使用自定的开方函数求平方根

public static double customSqrt(double x) {

  if (x < 0) {

    throw new IllegalArgumentException("x < 0");

  }

  double res = 1.0;

  double eps = 1e-15;

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

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

  }

  return res;

}

double d = customSqrt(16.0); // 4.000000000000002

上面的第一个代码使用了Math类提供的sqrt()函数,直接对16.0进行了求根运算,结果为4.0。第二个代码是使用了自定义的开方函数,这个函数使用了牛顿迭代法,来进行数值计算。同时这个函数会对输入值进行校验,如果输入值小于0,则会抛出IllegalArgumentException异常。

那么这个函数的时间复杂度是什么呢?由于该函数使用了牛顿迭代法,所以时间复杂度为O(logn)。

综上所述,我们可以在Java中使用自带的Math类,以及自己编写的开平方函数,来实现开方的操作。如果我们需要进行较为精确和快速的计算,那么我们可以使用自定义开方函数来进行运算。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复