如何计算在N场比赛中赢得至少k的概率

时间:2017-02-14 05:38:24

标签: algorithm probability combinatorics

问题很简单,给定K和N,当赢得或失去单个游戏的概率等于1/2时,在N场比赛中赢得至少K的概率是多少。

唯一的是N大到10 ^ 6。

使用素数分解我可以有效地计算出N场比赛中K胜利的概率,但对于至少K来说它似乎并不有效。

请提供有效的方法。

2 个答案:

答案 0 :(得分:1)

您正在寻找 CDF 累积分布函数 - 概率 该分布函数的值小于或等于x。)

https://en.wikipedia.org/wiki/Cumulative_distribution_function

在您的情况下,Binomial distribution CDFRegularized Incomplete Beta function

  CDF(p, N, K) = I(1 - p, N - K, 1 + K)

在你的情况下(p = 1/2

  P(N, K) = 1 - I(0.5, N - K + 1, K) 

许多数学引擎提供此类 beta函数,例如免费Octave使用betainc

  N = 10; # 10 games
  K = 2;  # win at least 2 
  1 - betainc(0.5, N - K + 1, K)

结果

  0.98926

答案 1 :(得分:-1)

让我们来表示

P(k,n)= Probability of winning atleast k out of n games

现在,

P(k,n) = P(k,n| nth chance was win)*P(nth win) +  P(k,n| nth chance was lost)*P(nth lost)
       = 1/2*P(k-1,n-1) + 1/2*P(k,n-1)

如果使用此递归,则不需要进行素数分解。