Треки
/
PHP
PHP
/
Вправи
/
Незбагненні дні народження
Незбагненні дні народження

Незбагненні дні народження

Середня

Вступ

Щойно закінчивши коледж, ми влаштовуємо велику вечірку, щоб відсвяткувати разом із друзями та родиною. Прийшло понад 70 людей, серед них і наш трохи ексцентричний дядько Тед.

У одній зі своїх звичних витівок він закладається з нами на £100, що принаймні двоє людей у кімнаті мають однаковий день народження. Це звучить безглуздо: можливих днів народження значно більше, ніж гостей, тож ми впевнено погоджуємося.

На наш подив, зібравши дні народження лише 32 гостей, ми вже знайшли двох гостей з однаковим днем народження. Приймаючи свою поразку, ми віддаємо дядькові Теду його £100, але щось тут не сходиться.

Наступного дня цікавість бере гору. Швидкий пошук в інтернеті виводить нас на парадокс дня народження, з якого видно, що вже за 23 людей імовірність збігу днів народження перевищує 50%.

Ага. Ось чому дядько Тед був таким упевненим.

Сповнені рішучості змінити розклад, ми починаємо шукати інші парадокси; наступного разу ми будемо тими, хто укладає парі.

Note

Парадокс дня народження належить до веридичних парадоксів: попри те, що він здається неправильним, насправді він істинний.

Вказівки

Наше завдання - оцінити ймовірності парадоксу днів народження.

Щоб це зробити, нам потрібно:

  • Згенерувати випадкові дати народження.
  • Перевірити, чи містить набір випадково згенерованих дат народження щонайменше дві з однаковим днем народження.
  • Оцінити ймовірність того, що щонайменше двоє людей у групі мають однаковий день народження, для різних розмірів групи.
Note

Дата народження охоплює повну дату народження (рік, місяць і день), тоді як день народження охоплює лише місяць і день, які повторюються щороку. Дві дати народження з однаковими місяцем і днем відповідають одному дню народження.

Caution

Парадокс днів народження припускає, що:

  • Існує 365 можливих днів народження (без високосних років).
  • Кожен день народження є рівноймовірним (рівномірний розподіл).

Реалізація має дотримуватися цих припущень.


Джерело

Erik SchierboomПосилання відкривається в новому вікні або вкладці
Редагувати через GitHub Посилання відкривається в новому вікні або вкладці
PHP Exercism

Час розпочати Незбагненні дні народження?

Зареєструйтеся на Exercism, щоб вивчати й опановувати PHP, а також 11 концепцій121 вправа та справжнє наставництво від людей, і все це безкоштовно.