「このループを、a をパラメーターとして取り、x の適切な値を選択し、a の平方根の推定値を返す square_root という関数にカプセル化します。」
def square_root(a):
x = 2
y = (x + a/x) / 2
epsilon = 0.00000000001
if abs(y - x) < epsilon:
print y
while abs(y - x) > epsilon:
x = x + 1
y = (x + a/x) / 2
break
else:
return
print y
square_root(33)
'a' に 33 を入力するまで、正しい平方根を推定します。その後、指数関数的にジャンプを開始し、「a」に 100 を送信すると、平方根が約 18 であると推測するところまで到達します。これが推定の性質であるかどうかはわかりません。正確な平方根を見つける方法は知っていますが、これは本「Think Python」の演習であり、再帰とアルゴリズムの思考を練習することです。