问题是
要找到数字“ N”的平方根。使用此过程,我们必须实现
以下过程:
猜测N的平方根的值
将N除以该猜测
使用原始猜测对结果求平均值,以得到新的猜测
转到步骤2并重复
我将代码设置为一旦它在前一个Guess的0.5以内,并且不重复该函数,就返回Guess。我不确定如何使其重复或如何闭合循环。
def SqrRt(Number,Guess):
while Guess2 == ((Estimate+Guess)/2):
if (Estimate - Guess2) <= 0.5:
return Guess2
elif (Estimate - Guess2) >= -0.5:
return Guess2
else:
Estimate = (Number/Guess)
Guess2 = Estimate + 1
答案= SqrRt(34567823321421,500000)
打印(答案)
最佳答案
使用巴比伦方法意味着求解(S ^ 2-V)=0。在这里,S是要找到的V的平方根。应用牛顿近似法得出一种迭代方法,其中“ x_new =(x_prev + V / x_prev)/ 2”。需要估计第一个“ x_prev”。
迭代单调收敛。因此,检查开发中的增量就足够了。
x = V / 2.0 # First estimate
prev_x = x + 2 * Delta # Some value for that 'while' holds
while abs(prev_x - x) > Delta:
prev_x = x
x = (x + V/x) / 2.0
square_root = x
选择Delta任意小(例如0.0001)。