📅  最后修改于: 2023-12-03 15:38:51.053000             🧑  作者: Mango
对于程序员而言,我们可以通过编写代码来计算24的平方根。这里介绍两种常见的方法:
牛顿迭代法是一种可用于求函数零点的方法,也可用于求平方根。具体实现如下:
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进行更新,直到误差足够小为止,即可得到值得精度足够高的平方根。
二分法是一种逐步缩小区间并在其中查找目标值的方法,同样可以用于求平方根。具体实现如下:
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平方根的方法,这就是程序员可以用来解决这个问题的方法之一。