为什么我们使用 max 函数。我们不能立即对 x 评价高吗?这也将达到我们的目的。那么,这个 max() 函数如何改进算法呢?
x=25
epsilon=0.01
numGuesses= 0
low =0.0
high = max(1.0,x)
ans = (high+low)/ 2.0
while abs(ans**2 -x)>= epsilon:
print 'low =', low, 'high =', high, 'ans =', ans
numGuesses+= 1
if ans**2 <= x:
low= ans
else:
high= ans
ans = (high+low)/2.0
print 'numGuesses =', numGuesses
print ans, 'is close to square root of', x