繁体   English   中英

如何使random.randint()更随机

[英]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.

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