下面是 Python 版本的代码实现,可以看到,虽然要证明牛顿迭代的收敛性不太容易,但是只需要不到 10 行代码就可以实现牛顿迭代算法。
class Solution:
def mySqrt(self, x: int) -> int:
e = 0.1 # 迭代精度
last_x = -100 # 记录上一次迭代的解
res = x # 当前解
while abs(res-last_x) > e:
last_x = res
res = (res*res + x)/(2*res)
return int(res)
牛顿迭代动画演示
动画演示了的牛顿迭代计算过程,可以发现随着迭代的进行,当前解很快就收敛到了真实解(1.732)附近。

KMeans 聚类算法
KMeans 聚类算法的功能是将给定的一组数据划分成 k 组,这里 k 的数目由使用者指定,算法可以将相似性高的数据划分到同一个组内,这样有助于发现数据之间的内在联系,在机器学习中经常使用。