Вычисление безубыточной цены лотерейного билета
Симуляции позволяют задавать более тонкие вопросы, на которые не всегда легко найти аналитическое решение. Вместо того чтобы разбираться со сложными математическими формулами, мы напрямую получаем множество возможных результатов. Можно проводить эксперименты, изменяя входные данные и наблюдая, как эти изменения влияют на систему. Например, имея достаточно точную модель глобальных погодных условий, можно оценить последствия роста выбросов парниковых газов.
В случае с лотереей нас может интересовать вопрос: при какой цене билета покупать его становится невыгодно? Чтобы это выяснить, нужно менять стоимость билета и отслеживать, когда ожидаемая выплата становится отрицательной.
Переменные grand_prize, num_tickets и chance_of_winning уже загружены в среду выполнения.
Это упражнение является частью курса
Статистическое моделирование на Python
Инструкции к упражнению
- Задайте
simsравным 3000, а переменнойlottery_ticket_costприсвойте значение0. - Если среднее значение
outcomesопустится ниже0, выйдите из циклаwhileс помощьюbreak. - В противном случае увеличьте
lottery_ticket_costна 1.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# 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))