Aan de slagBegin gratis

Gooi een dobbelsteen

Laten we een oneindige generator maken! Je taak is om de generator simulate_dice_throws() te definiëren. Die genereert de uitkomsten van worpen met een 6-zijdige dobbelsteen in de vorm van een dictionary out. Elke sleutel is een mogelijke uitkomst (1, 2, 3, 4, 5, 6). Elke waarde is een lijst: de eerste waarde is het aantal realisaties van een uitkomst en de tweede is de verhouding van het aantal realisaties tot het totale aantal worpen total. Bijvoorbeeld (bij 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]
}

Tip: gebruik de functie randint() uit de module random (al geïmporteerd). Die genereert een willekeurig geheel getal in het opgegeven interval (bijv. randint(1, 2) kan 1 of 2 zijn).

Deze oefening maakt deel uit van de cursus

Oefenen met coding-interviewvragen in Python

Bekijk cursus

Oefeninstructies

  • Simuleer één worp om een nieuw getal te krijgen.
  • Werk het aantal en de verhouding van de realisatie bij.
  • Yield de bijgewerkte dictionary.
  • Maak de generator en simuleer 1000 worpen.

Interactieve oefening met praktijkervaring

Probeer deze oefening door deze voorbeeldcode aan te vullen.

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(____(____)))
Code bewerken en uitvoeren