Задание
Написать программу, которая будет спрашивать пользователя, сколько дней рождения программа должна сгенерировать и он сразу генерирует и выводит пользователю список дней рождения. Далее она пишет , есть ли совпадающие дни рождения или нету, и затем генерирует 100000 симуляций. И проводит симуляции. А в конце программа пишет, из 100000 симуляций были совпадающие дни рождения столько-то раз. Это означает, что сколько-то человек с вероятностью столько-то процентов имеют одинаковый день рождения в своей группе.
Функционал программы
Функционал простой. Программа спрашивает , сколько дней рождения нужно сгенрировать и выводит пользователю список дней рождения. Далее она пишет, есть ли совпадающие дни рождения или нету, и затем генерирует 100000 симуляций. Провела 10000 симуляций, и в конце программа пишет, что из 100000 симуляций были совпадающие дни рождения столько-то раз. Это означает, что сколько-то человек с вероятностью столько-то процентов имеют одинаковый день рождения.
Фрагмент программного кода
def getMatch(birthdays):
if len(birthdays) == len(set(birthdays)):
return None
for a, birthdayA in enumerate(birthdays):
for b, birthdayB in enumerate(birthdays[a+1 :]):
if birthdayA == birthdayB:
return birthdayA
print(''"Парадокс дней рождения")
MONTHS = ('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec')
while True:
print('Сколько дней рождения я должен сгенерировать? (Максимум 100)')
response = input('> ')
if response.isdecimal() and (0 < int(response) <= 100):
numBDays = int(response)
break
print()
print('Вот', numBDays, 'дня рождения:')
birthdays = getBirthdays(numBDays)
for i, birthday in enumerate(birthdays):
if i != 0:
print(',', end='')
monthName = MONTHS[birthday.month - 1]
dateText = '{} {}'.format(monthName, birthday.day)
print(dateText, end='')
print()
print()
match = getMatch(birthdays)
print('В этой симуляции,', end='')
if match != None:
monthName = MONTHS[match.month - 1]
dateText = '{} {}'.format(monthName, match.day)
print('у нескольких людей день рождения на', dateText)
else:
print('нет совпадающих дней рождения.')
print()
Cкриншот архива с проектом

Содержание архива
Папка с проектом paradoxbirthdaydays в PyCharm.
Пояснения по запуску программы
Создать на компьютере папку Projects и поместить туда проект paradoxbirthdaydays. Открыть PyCharm и нажать правой кнопкой мыши на верхнюю вкладку и нажать Run main. И запустится программа.
Телеграм
-