Задумывались ли вы о том, насколько изменилась бы ваша жизнь, если бы вы выиграли в лотерею? Лотерея кажется вариантом быстрого обогащения, о котором мечтают многие. попробуем разобраться какова вероятность выигрыша в лотерее. Очевидно, что для того, чтобы выиграть джекпот в миллион или миллиард долларов, вам придется бросить вызов удаче. Обратите внимание на нашу статью «20 ВЕЩЕЙ КОТОРЫЕ ПРОИЗОЙДУТ РАНЬШЕ ВЫИГРЫША В ЛОТЕРЕЮ«.
Давайте предположим, что наша лотерея структурирована так, что каждый раз из числа чисел в диапазоне от 1 до 49 берется шесть номеров. Если вы не знакомы с тем, как работает лотерея, клиент, выбравший шесть номеров, должен получить ее точно так же, как и выигрышные номера. Если один номер отличается, они не выигрывают большой джекпот.
Применение Python для определения вероятности выигрыша в лотереи
Для начала нам нужно создать несколько функций.
Факторная функция:
Факториал положительного целого числа n, обозначенного через n!, является произведением всех положительных целых чисел, меньших или равных n: Например, значение 0! равно 1, в соответствии с соглашением для пустого продукта.
Комбинированная функция:
Комбинации области выбора предметов из коллекции таковы, что порядок выбора не имеет значения.
Вероятность выигрыша для одного лотерейного билета
Теперь давайте посчитаем вероятность выигрыша с одним купленным билетом.
Важно отметить,
- total_outcomes — использует формулу комбинации, которую мы создали ранее, передавая общее количество возможных чисел 49 и количество вариантов 6.
- success_outcomes — есть только один победитель, как упоминалось ранее, поэтому выигрывает только один билет.
Есть ровно 13 983 816 шансов на победу (total_outcomes),
Если бы мы запустили эту функцию на выборке из 6 номеров, выбранных для одного билета, мы получили бы следующее.
Вывод:
«Ваши шансы на выигрыш составляют 0,0000000000005113857220%!»
Насколько выше будет вероятность выигрыша в лотерее, если вы купите несколько билеты?
Вероятность выигрыша при покупке нескольких лотерейных билетов
Как вы можете видеть, я сохранил основной кусок кода так же, как функцию single_ticket, но теперь я добавил код, чтобы упростить комбинации. Я также добавил форматирование строк в конце, чтобы получить более читаемый результат.
Давайте проверим код, используя различные суммы тикетов и цикл for.
Вывод будет выглядеть примерно так.
Как и ожидалось, мы можем видеть, как увеличивается количество приобретаемых билетов, шансы на выигрыш увеличиваются. Последняя строка показывает, что у нас есть 100% шанс на выигрыш, если мы покупаем 13 983 816 , потому что мы рассчитали ранее, что общее количество возможных результатов составляет 13 983 816.
По материалам сайта https://towardsdatascience.com/