公式如下
newguess =
1
2
\frac{1}{2}
21 × (oldguess +
n
o
l
d
g
u
e
s
s
\frac{n}{oldguess}
oldguessn)
以上公式接受一个值n,并且通过在每一次迭代中将newguess赋值给oldguess来反复猜测平方根,初次猜测的平方根是n/2。下面代码清单展示了该函数的定义,它接受值n并且返回20轮迭代之后的n的平方根
代码实现
def squareroot(n):
root = n/2
for k in range(20):
root = (1/2) * (root + n/root)
return root