ComeçarComece de graça

Jogue um dado

Vamos criar um gerador infinito! Sua tarefa é definir o gerador simulate_dice_throws(). Ele gera os resultados de lançamentos de um dado de 6 faces no formato de um dicionário out. Cada chave é um resultado possível (1, 2, 3, 4, 5, 6). Cada valor é uma lista: o primeiro valor é a quantidade de ocorrências de um resultado e o segundo é a razão entre as ocorrências e o número total de lançamentos total. Por exemplo (quando total = 4):

{
  1: [2, 0.5],
  2: [1, 0.25],
  3: [1, 0.25],
  4: [0, 0.0],
  5: [0, 0.0],
  6: [0, 0.0]
}

Dica: use a função randint() do módulo random (já importado). Ela gera um inteiro aleatório no intervalo especificado (por exemplo, randint(1, 2) pode ser 1 ou 2).

Este exercício faz parte do curso

Praticando questões de entrevista de código em Python

Ver curso

Instruções do exercício

  • Simule um único lançamento para obter um novo número.
  • Atualize a contagem e a razão de ocorrência.
  • Faça yield do dicionário atualizado.
  • Crie o gerador e simule 1000 lançamentos.

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

def simulate_dice_throws():
    total, out = 0, dict([(i, [0, 0]) for i in range(1, 7)])
    while True:
        # Simulate a single toss to get a new number
        num = ____
        total += 1
        # Update the number and the ratio of realizations
        out[num][0] = ____
        for j in range(1, 7):
        	out[j][1] = round(____/____, 2)
        # Yield the updated dictionary
        ____

# Create the generator and simulate 1000 tosses
dice_simulator = ____
for i in range(1, 1001):
    print(str(i) + ': ' + str(____(____)))
Editar e executar o código