硬币跌落/伯努利公式概率

时间:2019-04-15 12:57:47

标签: math probability probability-theory

我对我的结果感到困惑。我正在尝试解决该练习:

“概率为决定掉落(尾巴)的1/3的硬币在尝试30次时尾巴恰好掉落10次的概率是多少?”

我得到一个奇怪的结果: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 个答案:

答案 0 :(得分:2)

您错误地使用了公式:应该有10次出现尾巴(概率1/3),而有几次出现头部(概率1-1 / 3 = 2/3)30-10 = 20次。

所以

(1/3)** 30

应该是

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

给出0.153作为答案。

答案 1 :(得分:0)

在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,与Julius Vainora的答案相吻合。