ÎncepețiÎncepe gratuit

Aruncă zarul

Hai să creăm un generator infinit! Sarcina ta este să definești generatorul simulate_dice_throws(). Acesta generează rezultatele aruncărilor unui zar cu 6 fețe, sub forma unui dicționar out. Fiecare cheie reprezintă un rezultat posibil (1, 2, 3, 4, 5, 6). Fiecare valoare este o listă: primul element este numărul de apariții ale rezultatului, iar al doilea – raportul dintre numărul de apariții și numărul total de aruncări total. De exemplu (când 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]
}

Indiciu: folosește funcția randint() din modulul random (deja importat). Aceasta generează un număr întreg aleatoriu în intervalul specificat (de ex. randint(1, 2) poate returna 1 sau 2).

Acest exercițiu face parte din cursul

Exersarea întrebărilor de interviu de programare în Python

Vezi cursul

Instrucțiuni pentru exercițiu

  • Simulează o singură aruncare pentru a obține un număr nou.
  • Actualizează numărul de apariții și raportul de realizare.
  • Returnează prin yield dicționarul actualizat.
  • Creează generatorul și simulează 1000 de aruncări.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

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(____(____)))
Editează și rulează codul