当前位置:首页 > JavaScript

js实现sqrt(num)

2026-02-03 08:26:42JavaScript

实现 sqrt(num) 的方法

使用 Math.sqrt()

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

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

牛顿迭代法

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

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() 或对数计算:

js实现sqrt(num)

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实现轮播图

基础轮播图实现 使用HTML、CSS和JavaScript实现一个简单的自动轮播图。HTML结构包含一个容器和多个图片项。 <div class="slider"> <div…

jquery js

jquery js

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画和 Ajax 交互。它兼容多种浏览器,提供易于使用的 API,使开发者能够更高…

js实现交换

js实现交换

交换变量的方法 在JavaScript中,交换两个变量的值有多种方法。以下是常见的几种实现方式: 使用临时变量 通过引入一个临时变量来存储其中一个变量的值,实现交换: let a = 1; le…

js实现滑动

js实现滑动

实现滑动效果的方法 在JavaScript中实现滑动效果可以通过多种方式完成,以下是几种常见的实现方法: 使用CSS过渡和JavaScript触发 通过CSS定义过渡效果,JavaScript控制触…

js实现按钮点击

js实现按钮点击

实现按钮点击的JavaScript方法 HTML按钮元素 在HTML中创建按钮元素,为其添加id或class以便JavaScript选择: <button id="myButton">点…

js实现原理

js实现原理

JavaScript 实现原理 JavaScript 是一种解释型语言,其实现原理涉及多个核心组件和运行机制,包括引擎、运行时环境、事件循环等。 引擎与解释执行 现代 JavaScript 引擎(如…