Heron 的方法生成一个数字序列,这些数字代表√n的越来越好的近似值。序列中的第一个数字是任意猜测;序列中的每个其他数字都是使用公式从前一个数字prev获得的:
(1/2)*(prev+n/prev)
我应该编写一个heron()
将两个数字作为输入的函数:n和error。该函数应该从1.0的初始猜测开始,然后重复生成更好的近似值,直到逐次逼近之间的差值(更准确地说,差值的绝对值)最多为error。
usage:
>>> heron(4.0, 0.5)
2.05
>>> heron(4.0, 0.1)
2.000609756097561
这有点棘手,但我需要跟踪四个变量:
# n, error, prev and current
我还需要一个带有条件的while循环:
((current - prev) > error):
while循环的一般规则是:
# old current goes into new prev
所以这就是我到目前为止所得到的,这并不多,因为一开始我不知道如何在while循环下合并“if”语句。
def heron(n, error):
guess = 1
current = 1
prev = 0
while (current - prev) > error:
previous==1/2*(guess+n/guess):
print (previous) # just a simple print statement
# in order to see what i have so far
有人可以给我一些正确方向的指示吗?
谢谢你