在过去的一个小时里,我一直在尝试破解这个问题,但在这里遇到了一些麻烦。这就是问题
这种计算数字 n 平方根的方法首先是对平方根进行(非零)猜测。然后它使用原始猜测来计算新的猜测,根据公式
newGuess = ((n / oldGuess) + oldGuess) / 2.0;
有两个变量
oldGuess
和newGuess
。根据上述公式初始化oldGuess
并n / 2.0
计算。newGuess
只要 和 之差的绝对值大于oldGuess
,就使用 while 循环进行迭代。不要忘记将 的值重置为while 循环中的 值。newGuess
1.0E-06
oldGuess
newGuess
在您的程序中,您将提示用户输入一个正数。如果该数字为负数,则打印一条错误消息并要求用户重试。对于正数,使用上述方法计算平方根。找出您获得的平方根与使用幂运算符获得的值之间的差。写出用户输入的值、您计算的平方根和差值(您的平方根 -
n ** 0.5
)
到目前为止,这是我的程序
def main():
n = eval(input("Enter a positive number: "))
while (n <= 0):
print ("Error please re-input")
n = eval(input("Enter a positive number: "))
oldGuess = n / 2.0
newGuess = ((n / oldGuess) + oldGuess) / 2.0;
difference = n - n ** 0.5
while (difference < 1 * 10 ** -6):
print ("Error")
difference = abs(n - n ** 0.5)
print ("Difference:", difference)
main()
所以我真的不明白我们如何告诉程序进行猜测然后计算变量n的平方根。我什至不认为我的 while 语句在这种情况下是正确的。我不使用已经嵌入到 python 中的 squareroot 函数,所以它必须手动完成我相信仍然迷失了guess 函数的含义。