Calcolare il prezzo di pareggio della lotteria
Le simulazioni ci permettono di porre domande più sfumate che potrebbero non avere una facile soluzione analitica. Invece di risolvere una formula matematica complessa, otteniamo direttamente molteplici esiti campionati. Possiamo eseguire esperimenti modificando gli input e studiando come questi cambiamenti influenzano il sistema. Per esempio, una volta che abbiamo un modello ragionevole dei pattern climatici globali, potremmo valutare l’impatto dell’aumento delle emissioni di gas serra.
Nel caso della lotteria, potremmo voler sapere quanto deve costare il biglietto perché non abbia senso comprarlo. Per capirlo, dobbiamo modificare il costo del biglietto per vedere quando il valore atteso diventa negativo.
grand_prize, num_tickets e chance_of_winning sono già caricati nell’ambiente.
Questo esercizio fa parte del corso
Simulazione statistica in Python
Istruzioni dell'esercizio
- Imposta
simsa 3000 e la variabilelottery_ticket_costa0. - Se il valore medio di
outcomesscende sotto0, esci dal ciclowhileconbreak. - Altrimenti, incrementa
lottery_ticket_costdi 1.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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))