循环函数求一个numb的平方根

2024-03-29 14:52:47 发布

您现在位置:Python中文网/ 问答频道 /正文

问题是 要求数字“N”的平方根。使用此过程,我们必须实现 以下流程:

  1. 猜测N的平方根的值
  2. 用这个猜测除以N
  3. 将结果与原始猜测平均,得到新猜测
  4. 转到步骤2并重复

我已经将代码设置为在前一个猜测值的0.5范围内返回猜测值,如果不重复该函数的话。我不知道如何让它重演,也不知道如何结束循环。在

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(34567823321421500000) 打印(答案)


Tags: 函数答案代码numberreturn过程def步骤
2条回答

使用巴比伦方法意味着求解(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)。在

首先

对于这样的问题,您需要真正运行的代码。我建议您的代码应该更像这样:

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
answer = SqrRt(34567823321421,500000)
print(answer) 
#Number to Use - 34567823321421
#Answer - 5879440.732

相关问题 更多 >