Как найти вероятность 3 сценария - PullRequest
0 голосов
/ 21 марта 2020

У меня есть корзина с теннисными мячами (2) и бейсбольными мячами (22), в общей сложности в корзине 24 мяча.

Я хочу знать, какова вероятность для 3 сценария ios.

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

Я хочу знать вероятность того, что после того, как вы вытащите все 12 шаров, какова вероятность:

1 .) Я вытаскиваю оба (2) теннисных мяча 2.) Я вытаскиваю 0 теннисных мячей 3.) Я вытаскиваю только 1 теннисный мяч?

Очевидно, что вероятности для всех 3 из этих вопросов должны складываться в 1 или 100%

спасибо

1 Ответ

0 голосов
/ 22 марта 2020

Это гипергеометрия c распределение при выборке без замены. Так что давайте, если мы используем гипергеом из scipy в python:

from scipy.stats import hypergeom
import seaborn as sns
# M is total pool, n is number of successes, N is the number of draws
[M, n, N] = [22, 2, 12]
rv = hypergeom(M, n, N)
#the range of values we are interested in
x = np.arange(0, n+1)
pmf_tballs = rv.pmf(x)

вероятности для 0,1,2

pmf_tballs
array([0.19480519, 0.51948052, 0.28571429])

sns.barplot(x=x,y=pmf_tballs,color="b")

enter image description here

Вы можете рассчитать методом грубой силы:

import itertools
balls = [int(i) for i in '1'*2 + '0'*20]
draws = itertools.combinations(balls, 12)
counts_by_tballs = {0:0,1:0,2:0}
for i in draws:
    counts[sum(i)] +=1

You get a tally of 0, 1 and 2:

counts
{0: 251940, 1: 671840, 2: 369512}

И вероятность та же, что и выше с гипергеометрией c:

[i/sum(counts.values()) for i in counts.values()]
[0.19480519480519481, 0.5194805194805194, 0.2857142857142857]
...