方程系数按比例提高后,结果不一致

n=0

for x in range(0,101):

    for y in range(0,51):

        for z in range(0,21):

            if 0.01*x+0.02*y+0.05*z==1:      #1*x+2*y+5*z==100

                n+=1

print(n)   527       #541


one_for_all
浏览 817回答 0
0回答

Stardust1001

我没具体运行它,但一眼看上去,我觉得是不是精度问题?比如,浮点数里面的 1 也许实际上是1.00000003这种,这样就不能用 == 。那样,可以大概设置一个很小的值,作为与1比较的允许偏差。或者使用Decimal?
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python