На нашем сайте Вы сможете найти готовые курсовые и дипломные работы по программированию
Сейчас работаем

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

Задание

Написать программу, которая будет спрашивать пользователя, сколько дней рождения программа должна сгенерировать и он сразу генерирует и выводит пользователю список дней рождения. Далее она пишет , есть ли  совпадающие дни рождения или нету, и затем генерирует 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. И запустится программа. 

Купить 700,00 
Сразу после оплаты Вы сможете скачать работу и мы вышлем дополнительно файл с работой на электронную почту. Исходник программ Вы сможете отредактировать, как Вам нужно.
Комментарии (0)

/ /

Оставить комментарий

Ты не можешь комментировать

Только зарегистрированые пользователи имеют возможность комментировать работы
Купить

700,00 

Покупается впервые!
Сразу после оплаты Вы сможете скачать работу и мы вышлем дополнительно файл с работой на электронную почту. Исходник программ Вы сможете отредактировать, как Вам нужно.

Заказать через

paradoxbirthdaydays.rar
3207489
Оцени работу

рейтинг

Программа Парадокс дней рождения Python
Парадокс дней рождения - утверждение, состоящее в том, что в группе, состоящей из 23 или более человек, вероятность совпадения дней рождения. К примеру, в группе из 70 человек вероятность совпадения у двух людей 99,9%. Но в группе лишь 23 человека вероятность составляет 50 %. Программа производит несколько вероятностных экспериментов, чтобы определить процентные соотношения для групп
Категория: Образование
Стоимость: 700,00