簡體   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