找到连续胜利的算法(调整后的二项分布)

时间:2017-04-02 08:35:11

标签: algorithm probability

想象一下,我有一个轮盘赌,我想给我的算法提供三个整数

  • p:=赢得一场比赛的概率
  • m:=车轮旋转的次数
  • k:=我感兴趣的连续胜利数

我感兴趣的是概率P在旋转了几次之后我连续赢了至少k场比赛。

让我们来看一个m = 5和k = 3的例子,让他们说1是赢,0是亏。

1 1 1 1 1
0 1 1 1 1
1 1 1 1 0
1 1 1 0 0
0 1 1 1 0
0 0 1 1 1

所以在我的意图中,这将是至少连续3场比赛获胜的全部解决方案。对于每一个k,我都有(m-k + 1)可能的获胜结果。

第一个问题,这是真的吗?或者1 1 1 0 1和1 0 1 1 1是可能的解决方案吗?

接下来,这个问题的方便计算怎么样?首先,我考虑了二项分布来解决这个问题,我只是遍历所有k: \ textstyle {n \ choose k} \,p ^ {k}(1-p)^ {n-k}

但是这不能保证连续获胜。二项式分布是否可以调整以产生我正在寻找的输出P?

2 个答案:

答案 0 :(得分:1)

以下是您可能需要考虑的选项:

你生成一个长度为m的数组,条目0 ... m表示在第i个时间你有k连续1的概率。

所有时段直到k的概率为0,没有连续k次获胜的机会。 时隙k具有概率p ^ k。

之后的所有位置都是基于动态规划方法计算的:计算位置k + 1的每个位置i:由位置i-1加上的总和加上(p ^ k *(1-p)*(1 - 概率)在(i-1-k)位置。

通过这种方式迭代数组,你将在最后一个位置得到至少k连续1的概率。

答案 1 :(得分:0)

  

或者1 1 1 0 1和1 0 1 1 1是可能的解决方案吗?

是的,他们会根据decltype

  

首先,我想到了解决这个问题的二项分布,我只是迭代所有k:\ textstyle {n \ choose k} \,p ^ {k}(1-p)^ {nk}

如果将if与accept-rejection方法结合使用可能会有效。从二项式生成结果,检查至少win at least k consecutive games个奖金,如果是,则接受,否则退出。

  

二项式分布是否可以调整以产生我正在寻找的输出P?

坦率地说,我会看看Geometric distribution,它会在失败前证明成功获胜的次数(反之亦然)。