Aan de slagGa gratis aan de slag

Een break-even loterijprijs berekenen

Simulaties laten je meer genuanceerde vragen stellen die niet per se een makkelijke analytische oplossing hebben. In plaats van een complexe wiskundige formule op te lossen, krijg je direct meerdere steekproefuitkomsten. We kunnen experimenten uitvoeren door inputs aan te passen en te bestuderen hoe die veranderingen het systeem beïnvloeden. Zo zouden we, zodra we een redelijk model van wereldwijde weerpatronen hebben, de impact van toegenomen uitstoot van broeikasgassen kunnen evalueren.

In het loterijvoorbeeld willen we misschien weten hoe duur het lot moet zijn voordat het niet meer logisch is om het te kopen. Om dit te begrijpen, moeten we de ticketprijs aanpassen om te zien wanneer de verwachte uitbetaling negatief wordt.

grand_prize, num_tickets en chance_of_winning zijn in de omgeving geladen.

Deze oefening maakt deel uit van de cursus

Statisticale simulatie in Python

Cursus bekijken

Oefeninstructies

  • Zet sims op 3000 en de variabele lottery_ticket_cost op 0.
  • Als de gemiddelde waarde van outcomes onder 0 komt, break dan uit de while-lus.
  • Anders verhoog je lottery_ticket_cost met 1.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# Initialize simulations and cost of ticket
sims, lottery_ticket_cost = ____, ____

# Use a while loop to increment `lottery_ticket_cost` till average value of outcomes falls below zero
while 1:
    outcomes = np.random.choice([-lottery_ticket_cost, grand_prize-lottery_ticket_cost],
                 size=sims, p=[1-chance_of_winning, chance_of_winning], replace=True)
    if outcomes.mean() < 0:
        ____
    else:
        ____ += 1
answer = lottery_ticket_cost - 1

print("The highest price at which it makes sense to buy the ticket is {}".format(answer))
Code bewerken en uitvoeren