Вероятность падения монеты / формулы Бернулли - PullRequest
0 голосов
/ 15 апреля 2019

Я смущен своим результатом.Я пытаюсь выполнить упражнение:

"Какова вероятность того, что монета с вероятностью 1/3 решения упасть (хвост) упадет ровно 10 раз с хвостом с 30 попытками?«

Я получил странный результат: 1.4592670745133494e-07 (формула Бернулли)

Что я делаю не так?Спасибо за вашу помощь.

def fac(n):
    return math.factorial(n)

a = fac(30)
b = fac(10)
c = fac(20)

(a / (b * c)) * (1/3)** 30

=> 1.4592670745133468e-07

Ответы [ 2 ]

2 голосов
/ 15 апреля 2019

Вы применили формулу неправильно: должны быть хвосты (вероятность 1/3) 10 раз и головы (вероятность 1-1 / 3 = 2/3) 30-10 = 20 раз.

Итак,

(1/3)** 30

должно быть

(1/3)** 10 * (2/3)** 20

, давая в качестве ответа 0,153.

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

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

import random

def simulate(n,k,prob = 0.5,trials = 10000):
    """estimates the probability of seeing exactly k heads in n rolls"""
    successes = 0
    for i in range(trials):
        trial = ''.join('H' if random.random() < prob else 'T' for _ in range(n))
        if trial.count('H') == k: successes += 1
    return successes/trials

Например, мой первый прогон simulate(30,10,1/3) оценивается как 0.1525, что соответствует ответу Юлиуса Вайнора.

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