You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

简易平方根计算器开发问题:square函数无法正确计算平方根

实现简易平方根计算器

首先要明确:你提供的square函数是用来计算正整数的平方的,而且它本身存在问题:

  • 缩进错误:return sum_so_far这一行的缩进多了一个空格,会触发语法错误;
  • 适用范围有限:只能处理正整数(因为range(x)要求参数为整数),且它的功能是平方计算,和平方根是完全反向的操作,所以用它肯定得不到正确的平方根结果。

要实现简易平方根计算器,推荐用牛顿迭代法——这是一种高效的近似求解方法,能快速得到满足精度要求的平方根值。以下是实现代码:

def square_root(n, tolerance=1e-6):
    """
    用牛顿迭代法计算非负数n的平方根,tolerance参数控制结果精度
    """
    # 处理特殊值:0和1的平方根就是自身
    if n == 0 or n == 1:
        return n
    # 初始猜测值,取n的一半作为起始点
    guess = n / 2
    # 迭代修正猜测值,直到误差在精度范围内
    while abs(guess * guess - n) > tolerance:
        guess = (guess + n / guess) / 2
    return guess

使用示例

# 计算10的平方根
print(square_root(10))  # 输出近似值3.1622776601683795

补充说明

  • 牛顿迭代法的核心逻辑是通过不断修正猜测值,让猜测值的平方逐步逼近目标数,直到误差小于设定的精度阈值(默认是1e-6,即0.000001);
  • 这个函数支持所有非负数的平方根计算,相比原square函数适用范围更广,结果精度也可灵活调整。

内容的提问来源于stack exchange,提问作者Ankit mishra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 22:55:38