Beräkna ett lotteris break-even-pris
Simuleringar gör det möjligt att ställa mer nyanserade frågor som inte alltid har en enkel analytisk lösning. I stället för att lösa en komplicerad matematisk formel får vi direkt flera möjliga utfall som urval. Vi kan köra experiment genom att ändra indata och studera hur förändringarna påverkar systemet. När vi till exempel har en rimligt god modell av globala vädermönster kan vi utvärdera effekten av ökade växthusgasutsläpp.
I lotteriexemplet kanske vi vill veta hur dyrt lotten behöver vara för att det inte ska löna sig att köpa den. För att ta reda på det behöver vi justera lottkostnaden och se när det förväntade utfallet blir negativt.
grand_prize, num_tickets och chance_of_winning är laddade i miljön.
Den här övningen är en del av kursen
Statistisk simulering i Python
Övningsinstruktioner
- Sätt
simstill 3000 och variabelnlottery_ticket_costtill0. - Om medelvärdet av
outcomesunderstiger0, avbrytwhile-loopen medbreak. - Annars ökar du
lottery_ticket_costmed 1.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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))