Tuesday, April 28, 2015

Парадокс дней рождения





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

Задача

Допустим в компании работает 25 человек. Какая вероятность того, что у двух людей из этой компании день рождения в один и тот же день?

Интуитивное решение

Ход мыслей может быть примерно такой: 25 человек, у каждого день рождения 1 раз в 365 дней. Поскольку надо 2 совпадения, то вероятности перемножаются, и, поскольку это надо повторить для всех, то еще умножить на 25:
  \(\frac{25}{365} * \frac{25}{365} * 25\), то есть \(\frac{25}{365}\).

Правильное решение 

Правильное решение и математическое доказательство хорошо описаны в вики, см. Парадокс дней рождения, его я здесь повторять не буду. Я же напишу програмку, которая покажет кто прав - интуиция или теория вероятности.

Пишу код

Для подобных экспериментов, результаты которых можно сразу же опубликовать мне очень нравится Python notebook. Его можно установить себе на компьютер, но я воспользуюсь бесплатным сервисом от https://www.wakari.io

В wakari.io создал новый файл, вставил ячейку (cell) типа Code и в ней заимпортил NumPy и вывел номер версии:

Затем создал функцию, которая создает массив размером n, каждый элемент которого случайное число от 1 до 365:

Эта функция проверяет есть ли в массиве birthdays элементы, которые повторяются больше чем 1 раз:

Запускает эксперимент несколько раз и возвращает количество успешных экспериментов (количество совпадений > 1)

Запускаю эксперимент и получаю вероятность того, что в группе из 23 человек хотя бы у двух совпадут дни рождения:

Вероятность более 50%, то есть интуитивное решение не является правильным.

Wakari.io очень прикольный сервис, он позволяет публиковать свои поделки. Этот код целиком можно глянуть тут: https://www.wakari.io/sharing/bundle/szelenin/birthdays

Ссылки на использованные материалы

Wakari.io -  online сервис для анализа данных на Python.
Парадокс дней рождения на википедиит
- Мой код  https://www.wakari.io/sharing/bundle/szelenin/birthdays


1 comment:

  1. Hadoop online training in Hyderabad gave much focus on the trending subjects like crowd -sourcing, crowd-funding, data science and more then referred this blog to learn more information.

    ReplyDelete