Информация об изменениях

Сообщение Re: Бросаем монетку от 06.07.2018 13:20

Изменено 06.07.2018 13:52 Буравчик

Re: Бросаем монетку
Здравствуйте, baily, Вы писали:

B>Вася бросил монетку 10 раз. А Петя 11 раз. Какова вероятность того, что у Пети монетка выпадет орлом больше чем у Васи?

B>Считаем, что при броске вероятность выпадания орла и решки одинакова.

from scipy.stats import binom

def vasya_less_petya(vasya_count, petya_count, p=0.5):
    prob = 0.0
    for k in range(petya_count+1):
        petya_throw_k_avers = binom.pmf(k, petya_count, p)
        vasya_throw_less_k_avers = binom.cdf(k-1, vasya_count, p)
        prob += petya_throw_k_avers * vasya_throw_less_k_avers
    return prob

vasya_less_petya(vasya_count=10, petya_count=11)


Результат:

0.5000000000000003

Re: Бросаем монетку
Здравствуйте, baily, Вы писали:

B>Вася бросил монетку 10 раз. А Петя 11 раз. Какова вероятность того, что у Пети монетка выпадет орлом больше чем у Васи?

B>Считаем, что при броске вероятность выпадания орла и решки одинакова.

from scipy.stats import binom

def vasya_less_petya(vasya_count, petya_count, p=0.5):
    prob = 0.0
    for k in range(petya_count+1):
        petya_throw_k_avers = binom.pmf(k, petya_count, p)
        vasya_throw_less_k_avers = binom.cdf(k-1, vasya_count, p)
        prob += petya_throw_k_avers * vasya_throw_less_k_avers
    return prob

vasya_less_petya(vasya_count=10, petya_count=11)


Результат:

0.5000000000000003


  Рефакторинг
def vasya_less_petya(vasya_count, petya_count, p=0.5):
    
    def vasya_less_petya_for_k_avers(k):
        petya_throw_exactly_k_avers = binom.pmf(k, petya_count, p)
        vasya_throw_less_k_avers = binom.cdf(k-1, vasya_count, p)
        return petya_throw_exactly_k_avers * vasya_throw_less_k_avers
    
    return sum([vasya_less_petya_for_k_avers(k) for k in range(petya_count+1)])