Inizia subitoInizia gratis

Lancia un dado

Creiamo un generatore infinito! Il tuo compito è definire il generatore simulate_dice_throws(). Deve generare gli esiti dei lanci di un dado a 6 facce sotto forma di dizionario out. Ogni chiave è un possibile esito (1, 2, 3, 4, 5, 6). Ogni valore è una lista: il primo elemento è il numero di occorrenze di quell’esito e il secondo è il rapporto tra le occorrenze e il numero totale di lanci total. Ad esempio (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]
}

Suggerimento: usa la funzione randint() del modulo random (già importato). Genera un intero casuale nell'intervallo specificato (ad esempio, randint(1, 2) può restituire 1 o 2).

Questo esercizio fa parte del corso

Esercitarsi con le domande di colloquio di coding in Python

Visualizza corso

Istruzioni dell'esercizio

  • Simula un singolo lancio per ottenere un nuovo numero.
  • Aggiorna il conteggio e la frequenza relativa dell’esito.
  • Emetti (yield) il dizionario aggiornato.
  • Crea il generatore e simula 1000 lanci.

esercizio interattivo pratico

Prova questo esercizio completando questo codice di esempio.

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(____(____)))
Modifica ed esegui il codice