НачатьНачать бесплатно

Вычисление безубыточной цены лотерейного билета

Симуляции позволяют задавать более тонкие вопросы, на которые не всегда легко найти аналитическое решение. Вместо того чтобы разбираться со сложными математическими формулами, мы напрямую получаем множество возможных результатов. Можно проводить эксперименты, изменяя входные данные и наблюдая, как эти изменения влияют на систему. Например, имея достаточно точную модель глобальных погодных условий, можно оценить последствия роста выбросов парниковых газов.

В случае с лотереей нас может интересовать вопрос: при какой цене билета покупать его становится невыгодно? Чтобы это выяснить, нужно менять стоимость билета и отслеживать, когда ожидаемая выплата становится отрицательной.

Переменные 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))
Редактировать и запускать код