- 帖子
- 1
- 精华
- 0
- 积分
- 9
- 阅读权限
- 10
- 注册时间
- 2019-1-20
- 最后登录
- 2019-2-10
|
我按照前面的课做的一个猜数字的程序
其中有一项是把猜的数字范围的上限和下限做修改,就是设定x,y两个值,然后确定范围x = 0, y = 100。之后再根据每次猜测的大小,不断调整x,y的取值进而不断调整猜测范围。
理论上来说,当电脑设定的数为0的时候我的程序应该永远都猜不到才对。因为取值为0, 猜1 的时候得到反馈数值过大,然后y调整为1,于是再次猜测的时候就应该是(0+1)/2=0.5,然后round之后得出1。再然后y依旧等于1,然后继续(0+1)/2=1.这样一直循环下去。但是实际去试的时候并没有出现上述的循环情况,而是真的猜到了0。那这个四舍五入是什么情况?
代码如下
from random import randint
q = 0
p = 100
num = 0
print('The asked number is', num)
print('guess what is the number')
ans = randint(q,p)
print('the number is', ans)
x = q
y = p
while ans != num:
if ans < num:
print('too small')
k = (y+ans)/2
k = round(k)
k=int(k)
x = ans
ans = k
else:
print('too big')
w = (x+ans)/2
w = round(w)
w=int(w)
y = ans
ans = w
print('the number is', ans)
print('x is', x, 'y is', y)
print('bingo')
|
|