Kom igångKom igång gratis

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

Visa kurs

Övningsinstruktioner

  • Sätt sims till 3000 och variabeln lottery_ticket_cost till 0.
  • Om medelvärdet av outcomes understiger 0, avbryt while-loopen med break.
  • Annars ökar du lottery_ticket_cost med 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))
Redigera och kör kod