📅  最后修改于: 2023-12-03 15:25:31.698000             🧑  作者: Mango
平方根是求一个数的平方根,即一个数的二次方根。JavaScript中提供了Math对象和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()方法用于求平方根。我们也可以实现自己的平方根函数,常用的两种实现方式为循环迭代和牛顿迭代法。