Парадокс Дня Рождения - как построить - PullRequest
0 голосов
/ 05 февраля 2019
from __future__ import division, print_function
from numpy.random import randint
import random
import numpy as np
%matplotlib inline
import matplotlib.pyplot as plt

def bday(c):
    trials = 5000
    count = 0
    for trial in range(trials):
        year = [0]*365
        l = False
        for i in range(c):
            bdayp = randint(1,365)
            year[bdayp] = year[bdayp] + 1
            if year[bdayp] > 1:
                l = True
        if l == True:
            count = count + 1
    prob = count / trials
    return prob


for i in range(2,41):
    a = bday(i)
    print(i,a)

Как видите, я генерирую количество людей в классе вместе с вероятностью того, что у них будет день рождения.Как я могу построить это так, чтобы у меня было n (количество человек) на оси x и вероятность на оси y, используя matplotlib.pyplot?

Спасибо.

1 Ответ

0 голосов
/ 05 февраля 2019

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

def func(x):
    return x * 10

x = []
y = []
for i in range(10):
    x.append(i)
    y.append(func(i))

plt.plot(x, y)

Вышесказанного также можно достичь, выполнив следующие действия:

def func(x):
    return x * 10

x = np.arange(10)
plt.plot(x, func(x))

Вот документация для np.arange ;оба построят следующее:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...