Щойно закінчивши коледж, ми влаштовуємо велику вечірку, щоб відсвяткувати разом із друзями та родиною. Прийшло понад 70 людей, серед них і наш трохи ексцентричний дядько Тед.
У одній зі своїх звичних витівок він закладається з нами на £100, що принаймні двоє людей у кімнаті мають однаковий день народження. Це звучить безглуздо: можливих днів народження значно більше, ніж гостей, тож ми впевнено погоджуємося.
На наш подив, зібравши дні народження лише 32 гостей, ми вже знайшли двох гостей з однаковим днем народження. Приймаючи свою поразку, ми віддаємо дядькові Теду його £100, але щось тут не сходиться.
Наступного дня цікавість бере гору. Швидкий пошук в інтернеті виводить нас на парадокс дня народження, з якого видно, що вже за 23 людей імовірність збігу днів народження перевищує 50%.
Ага. Ось чому дядько Тед був таким упевненим.
Сповнені рішучості змінити розклад, ми починаємо шукати інші парадокси; наступного разу ми будемо тими, хто укладає парі.
Парадокс дня народження належить до веридичних парадоксів: попри те, що він здається неправильним, насправді він істинний.
Наше завдання - оцінити ймовірності парадоксу днів народження.
Щоб це зробити, нам потрібно:
Дата народження охоплює повну дату народження (рік, місяць і день), тоді як день народження охоплює лише місяць і день, які повторюються щороку. Дві дати народження з однаковими місяцем і днем відповідають одному дню народження.
Парадокс днів народження припускає, що:
Реалізація має дотримуватися цих припущень.
Зареєструйтеся на Exercism, щоб вивчати й опановувати PHP, а також 11 концепцій121 вправа та справжнє наставництво від людей, і все це безкоштовно.