Вероятность хотя бы двух встречающихся? - PullRequest
0 голосов
/ 26 апреля 2019

У меня есть список вероятностей, каждая вероятность представляет вероятность успеха.Я хочу получить вероятность успеха двух или более людей.Я знаю, что он рассчитывается как 1-P (все неудачи) -P (один успех), как я могу получить P (один успех)?

import numpy  
success = [0.1,0.2,0.3,....]

fail= [(1-i) for i in success]

P_all_fail = numpy.prod(fail)

Ответы [ 2 ]

0 голосов
/ 26 апреля 2019

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

P_one_success = 0
current_P = 1
for x in success:
    current_P = x
    #we start by getting the probability of success for our current person
    for y in success:
        if y != x:
            current_P = current_P * (1 - y)
            #here we multiply our chance of having exactly one success by the chance that 
            #every other person fails
    P_one_success = P_one_success + current_P
    #finally we add all of these probabilities together
0 голосов
/ 26 апреля 2019

Вероятность того, что событие i будет успешным, а все остальные неудачными, будет

P_all_fail *success[i] /fail[i]

и, таким образом, вероятность того, что один из них является успешным, а все остальные неудачными, равна

P_one_success = P_all_fail * numpy.sum([ s / f for s,f in zip(success,fail)])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...