繁体   English   中英

有人可以解释一下这个 python 代码的逻辑吗?

[英]Can someone please explain me the logic of this python code?

这是一个 python 代码,用于获取数字的平方根。 请解释一下这背后的逻辑?

x = int(input('ENTER A NO:- '))
epsilon = 0.1
numGusses=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)
    numGusses+=1
    if ans**2 < x:
        low = ans
    else:
        high = ans
    ans = (high+low)/2.0
print('numGuesses =',numGusses)
print(ans,'is close to the square root of',x)

此代码通过设置上限和下限然后在中间进行“猜测”来找到平方根的近似值。

通过平方并将其与输入进行比较来测试猜测的好坏。

如果猜测很高,那就是新的上限; 如果它很低,那就是新的下限。

重复(在新范围的中间做出新的猜测)直到猜测“足够接近”。

理解这段代码在做什么的更简单的方法就是运行它。 它输出大量调试信息(包括每次迭代的上限/下限),因此很容易可视化它在做什么。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM