[英]How to make random.randint() more random
所以我正在写我的第一个程序,它最初只是一个滚动随机骰子值的东西,但是我扩展了它并获得了更多的乐趣。我遇到的问题是有时这个函数
def mathproblem(stuff):
if stuff == '1':
probuno=int(raw_input("can you solve: sqrt(169)+4"))
if probuno==17:
print('correct you may proceed')
rollify=True
else:
rollify=False
elif stuff=='2':
probdos=int(raw_input("can you solve: 47.9+36-14.8"))
if probdos==69.1:
print('YEEEET')
rollify=True
else:
print('you filthy wanker')
rollify=False
elif stuff == '3':
probtres=int(raw_input("can you solve: 32^2 -sqrt(625)"))
if probtres==399:
print('WOOOO')
rollify=True
else:
print('Wow... that was awful')
rollify=False
elif stuff=='4':
probquatro=int(raw_input("can you solve: ln(1)-e^0"))
if probquatro==-1:
print('MISSION ACCOMPLISHED')
rollify=True
else:
print('your parents probably hate you')
rollify=False
elif stuff=='5':
probcinco=(raw_input("can you solve: sqrt(-1)"))
if probcinco=='i':
print('wow you must be a genius')
rollify=True
else:
print('L')
rollify=False
在这里使用
elif guess>rand:
print('HALT! YOU MAY PROCEED ONLY IF YOU...')
mathproblem(oof)
和oof=random.randint(min,max)
所以每隔一遍又一遍地发送相同的问题,有什么办法可以使它更加随机吗? 编辑:对少年的遗憾;)
“更多随机”绝对不是您要的。
但是我相信您想要的行为是这样的:
def not_really_random(r_min, r_max):
seq = range(r_min, r_max+1)
while True:
random.shuffle(seq)
for n in seq:
yield n
for oof in not_really_random(a, b):
mathproblem(oof)
基本上,它将以随机顺序循环遍历所有不同的问题(在解决所有问题之后,有少许机会在您看到的最后一个问题上重新开始)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.