当前位置:首页 > JavaScript

js实现sqrt(num)

2026-02-03 08:26:42JavaScript

实现 sqrt(num) 的方法

使用 Math.sqrt()

JavaScript 内置的 Math.sqrt() 方法可以直接计算平方根:

js实现sqrt(num)

const num = 16;
const result = Math.sqrt(num); // 返回 4

牛顿迭代法

牛顿迭代法是一种数值逼近方法,适用于手动实现平方根计算:

js实现sqrt(num)

function sqrtNewton(num, precision = 0.0001) {
    let guess = num / 2;
    while (Math.abs(guess * guess - num) > precision) {
        guess = (guess + num / guess) / 2;
    }
    return guess;
}

const result = sqrtNewton(25); // 返回约 5.000000000016778

二分查找法

二分查找法通过逐步缩小范围逼近平方根:

function sqrtBinarySearch(num, precision = 0.0001) {
    let low = 0;
    let high = num;
    let mid = (low + high) / 2;

    while (Math.abs(mid * mid - num) > precision) {
        if (mid * mid > num) {
            high = mid;
        } else {
            low = mid;
        }
        mid = (low + high) / 2;
    }
    return mid;
}

const result = sqrtBinarySearch(9); // 返回约 3.000091552734375

指数与对数方法

利用数学恒等式 sqrt(num) = num^(1/2),通过 Math.pow() 或对数计算:

function sqrtPow(num) {
    return Math.pow(num, 0.5);
}

function sqrtLog(num) {
    return Math.exp(0.5 * Math.log(num));
}

const result1 = sqrtPow(36); // 返回 6
const result2 = sqrtLog(49); // 返回 7

注意事项

  • 输入验证:确保 num 是非负数,否则返回 NaN 或抛出错误。
  • 精度控制:牛顿迭代法和二分查找法需指定 precision 参数控制精度。
  • 性能:内置 Math.sqrt() 性能最优,手动实现适用于特定场景(如教学或限制环境)。

标签: jssqrt
分享给朋友:

相关文章

js实现全屏

js实现全屏

实现全屏的基本方法 使用JavaScript实现全屏功能主要依赖Element.requestFullscreen()方法。现代浏览器均支持此API,但不同浏览器可能需要添加前缀。 // 触发全屏…

js实现投球

js实现投球

实现投球动画的基本思路 使用JavaScript和CSS动画结合的方式模拟投球效果。核心是通过改变元素的位置、旋转和缩放属性,配合定时器或CSS过渡实现平滑动画。 创建基础HTML结构 <di…

js进度条实现

js进度条实现

使用HTML和CSS创建基础结构 在HTML中创建一个容器元素用于显示进度条,通常使用<div>元素。CSS用于设置进度条的样式,包括宽度、高度、颜色和圆角等属性。 <div cl…

js分页实现

js分页实现

分页的基本原理 分页的核心是通过计算当前页码和数据偏移量,从服务器或本地数据中截取对应范围的数据进行展示。通常需要以下参数:当前页码(currentPage)、每页条数(pageSize)、总数据量(…

js 实现拖拽

js 实现拖拽

实现拖拽的基本步骤 在JavaScript中实现拖拽功能需要监听几个关键事件:mousedown、mousemove和mouseup。以下是实现的基本逻辑。 监听目标元素的mousedown事件,记…

js 实现日历

js 实现日历

实现日历的基本思路 日历的核心功能是展示日期,并允许用户进行日期选择或导航。JavaScript 可以动态生成日历的 HTML 结构,并处理用户交互逻辑。 基础日历结构 日历通常包含头部(显示月份和…