[Python] Python randint() is not very random [closed]

Discussão em 'Python' iniciado por Stack, Abril 9, 2025.

  1. Stack

    Stack Membro Participativo

    This code is intended to simulate rolling five dice and show each roll until all five dice have the same number:

    import random

    die1 = random.randint(1,6)
    die2 = random.randint(1,6)
    die3 = random.randint(1,6)
    die4 = random.randint(1,6)
    die5 = random.randint(1,6)
    count = 1

    while (die1 != die2 and die1 != die3 and die1 != die4 and die1 != die5) or (die2 != die3 and die2 != die4 and die2 != die5) or (die3 != die4 and die3 != die5) or die4 != die5:
    print("Roll " + str(count) + ": " + str(die1) + "," + str(die2) + "," + str(die3) + "," + str(die4) + "," + str(die5))
    die1 = random.randint(1,6)
    die2 = random.randint(1,6)
    die3 = random.randint(1,6)
    die4 = random.randint(1,6)
    die5 = random.randint(1,6)
    count = count + 1

    print("Roll " + str(count) + ": " + str(die1) + "," + str(die2) + "," + str(die3) + "," + str(die4) + "," + str(die5))


    It should take (6^5)/2 = 3888 rolls on average. However, I've tested it about twenty times and the highest I've achieved is 3144 throws. These are my two lowest results:

    Required 7 rolls:

    Roll 1: 6,2,5,2,4
    Roll 2: 1,2,2,5,6
    Roll 3: 1,1,4,4,5
    Roll 4: 6,2,3,2,5
    Roll 5: 1,4,5,5,1
    Roll 6: 3,5,1,5,5
    Roll 7: 4,4,4,4,4


    Required 1 roll(!):

    Roll 1: 5,5,5,5,5


    Is there something in my code causing this or has something else gone wrong?

    Continue reading...

Compartilhe esta Página