📜  如何求24的平方根?(1)

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

如何求24的平方根?

对于程序员而言,我们可以通过编写代码来计算24的平方根。这里介绍两种常见的方法:

1. 牛顿迭代法

牛顿迭代法是一种可用于求函数零点的方法,也可用于求平方根。具体实现如下:

def sqrt(x):
    if x < 0:
        return None
    if x == 0:
        return 0
    
    x0 = x/2
    while True:
        x1 = (x0 + x/x0)/2
        if abs(x1 - x0) < 1e-7:
            return x1
        x0 = x1

print(sqrt(24))  # 输出4.898979485566356

解释一下代码:

首先判断输入的是否小于0或者等于0,如果是的话返回None或0,因为负数没有实数平方根,0的平方根就是0。

然后初始化一个初始估计值x0,最简单的做法就是将x0赋值为x/2。

接下来,我们在while循环中进行牛顿迭代,每次迭代对x0进行更新,直到误差足够小为止,即可得到值得精度足够高的平方根。

2. 二分法

二分法是一种逐步缩小区间并在其中查找目标值的方法,同样可以用于求平方根。具体实现如下:

def sqrt(x):  
    if x < 0:
        return None
    if x == 0:
        return 0  
    
    left, right = 0, max(1, x)
    while True:
        mid = (left + right)/2
        if abs(mid*mid - x) < 1e-7:
            return mid
        elif mid*mid < x:
            left = mid
        else:
            right = mid

print(sqrt(24))  # 输出4.898979485566356

解释一下代码:

首先跟前面一样,先判断是否小于0或者等于0,如果是的话返回None或0。

初始化两个端点left和right,为了避免right太小,我们将其设为1和x的较大者。

然后在while循环中进行二分查找,计算mid等于left和right的平均值。如果算出来的mid的平方和x的差距足够小,我们就认为mid就是x的平方根,返回即可。否则,如果mid的平方小于x,就把left更新为mid,否则把right更新为mid。

到此,我们已经介绍了两种求24平方根的方法,这就是程序员可以用来解决这个问题的方法之一。