📜  平方根 javascript (1)

📅  最后修改于: 2023-12-03 15:25:31.698000             🧑  作者: Mango

平方根 JavaScript

平方根是求一个数的平方根,即一个数的二次方根。JavaScript中提供了Math对象和Math.sqrt()方法用于求平方根。

Math.sqrt()方法

Math.sqrt()方法用于返回一个数的平方根。该方法的参数必须是一个数字。如果参数小于0,则返回NaN。

Math.sqrt(16); // 4
Math.sqrt(-16); // NaN
实现自定义平方根函数

我们也可以实现自己的平方根函数。

精度较低的实现方法

最简单的实现方式是一个简单的循环迭代。

function mySqrt(x, precision) {
  if (x < 0) return NaN;
  if (x === 0) return 0;
  precision = precision || 0.00001;
  var left = 0,
    right = x,
    middle = (left + right) / 2;
  while (Math.abs(middle * middle - x) > precision) {
    if (middle * middle < x) {
      left = middle;
    } else {
      right = middle;
    }
    middle = (left + right) / 2;
  }
  return middle;
}
console.log(mySqrt(16)); // 4
console.log(mySqrt(2)); // 1.4142141
牛顿迭代法实现方法

牛顿迭代法的思想是不断将切线的零点作为下一次迭代的初始点,直到切线的零点与函数的零点足够接近。下面是牛顿迭代法的平方根实现。

function mySqrt(x, precision) {
  if (x < 0) return NaN;
  precision = precision || 0.00001;
  var val = x,
    last;
  do {
    last = val;
    val = (val + x / val) / 2;
  } while (Math.abs(val - last) > precision);
  return val;
}

console.log(mySqrt(16)); // 4
console.log(mySqrt(2)); // 1.4142135623746899
总结

JavaScript中提供了Math.sqrt()方法用于求平方根。我们也可以实现自己的平方根函数,常用的两种实现方式为循环迭代和牛顿迭代法。