假设$m$玩家正在玩游戏($m=1000$),并且有$n$张不同的牌$(n=54)$。让我们从一个玩家的角度来看这个游戏。定义以下事件:
\开始{align}
A&:\left\{text{前四张牌没有赢的图案}\right\}\\
B&:\left \{\text{前五张牌没有获胜模式}\right \}
\完{align}如果我们统计了所有可能的获胜模式,我们发现有18种。同时,有$\binom{n}{4}$种方法来挑选四张卡片。无获胜模式的概率为1减去获胜模式的可能性:
\[
\矩阵{P}(A)=1-\frac{18}{\binom{n}{4}}
=\压裂{35137}{35139}\约0.999943
\]当有五张牌时,方法类似。18个获胜模式中的每一个都使用4张牌。第五张卡可以是剩余的$n-4$卡中的任何一张,因此我们有:
\[
\矩阵{P}(B)=1-\frac{18(n-4)}{\binom{n}{5}}
=\压裂{35129}{35139}\约0.999715
\]
现在,让我们问一个问题:使用所有五张牌出现获胜模式的概率是多少考虑到前四张牌没有图案。我们可以使用贝叶斯规则和全概率定律:
\开始{align}
\mathbf{P}(\bar B\mid A)
&=1-\mathbf{P}(B\mid A)\\
&=1-\frac{\mathbf{P}(A\cap B)}{\mathbf{P{(A)}\\
&=1-\frac{\mathbf{P}(B)}{\mathbf{P{(A)}\\
&=\压裂{8}{35137}\约0.00022768
\完{align}其中在第三步中,我们使用了$B\subseteq A$的事实,因此$A\cap B=B$(如果五张牌中没有赢的模式,那么前四张牌中就不可能有赢的模式)。
这个问题要求我们找出这样的概率:如果$m$玩家玩游戏,但第四张牌上没有人赢,那么第五张牌上只有一个人赢。我们把这个概率称为$q$。由于每个玩家都是独立玩的,有$m$不同的人可以赢,概率为$\mathbf{P}(\bar B\mid A)$,其他$m-1$玩家必须输,每个人概率为$\ mathbf}(B\mid-A)$。因此,恰好有一个人在第五张牌上获胜的概率是:
\[
q\,=\,m\cdot\mathbf{P}(\bar B\mid A)\cdot\ mathbf}(B\mid-A)^{m-1}
=m\cdot\左(1-\frac{\mathbf{P}(B)}{\mathbf{P{(A)}\right)\cdot\left
\]将前面找到的数值替换为$\mathbf{P}(A)$和$\mathbf{P{(B)$以及$m=1000$,我们得到:
\开始{align}
q&=1000\左(\frac{8}{35137}\右)\左(\frac{35129}{35133}\右\\
&=\压裂{8000\cdot 35129^{999}}{35137^{1000}}\约0.181356
\完{align}所以考虑到前四张牌上没有人赢,1000个人中只有一个人赢第五张牌的概率约为18.136%。
一般情况
如果我们将$q$的表达式保留为$n$(不同牌的数量)和$m$(玩家的数量),我们得到:
\[
q=1728m\cdot\frac{左(n^4-6n^3+11n^2-6n-2160\right)^{m-1}}{左
\]如果我们固定$m=1000$并改变$n$,我们会得到以下图表:
当n$较小时,很可能会有很多人获胜。所以概率是只有一个人赢了在第5张牌上是低的。但是当$n$非常大时,任何人都不太可能赢,所以一个人在第五张牌上赢的概率再次很低。峰值出现在$n=38$(概率为36.8%)。
相反,如果我们固定$n=54$并改变$m$,我们会得到以下图表:
曲线的形状类似。当百万美元很小的时候,人不多,所以不太可能有人在第五张牌上赢。但是,当百万美元数额较大时,很可能会有许多人获胜,但这不太可能只有一个人将获胜。峰值出现在$m=4392$(概率再次达到36.8%)。
如果我们同时改变$m$和$n$,我们可以看到对于每个$n$来说,有一个理想的玩家数量$m$,这将使概率最大化(下图中的红色虚线)。
红色虚线的方程式为$m=frac{n^4-6n^3+11n^2-6n-432}{1728}$。
数值验证
为了测试上述公式是否正确,我运行了蒙特卡罗模拟来估计$\mathbf{P}(\bar B\mid a)$,这是一个玩家在第五张牌上获胜的概率,因为他们没有在第四张牌上赢。我模拟了大量比赛,只保留了那些在四张牌后没有赢的比赛。然后我计算了在第五张牌上获胜的剩余案例的经验分数。这是我的Python代码。
#获胜指数集win_idx=[[0,1,2,3],[4,5,6,7],[8,9,10,11],[12,13,14,15],#连续四个[0,4,8,12],[1,5,9,13],[2,6,10,14],[3,7,11,15],第四列第一行[0,1,4,5],[1,2,5,6],[2,3,6,7],#2x2第二行中的[4,5,8,9],[5,6,9,10],[6,7,10,11],#2x2第三排为[8,9,12,13]、[9,10,13,14]、[10,11,14,15]、#2x2[0,3,12,15]#四角]#如果宾果卡获胜,则返回Truedef正在获胜(比赛):对于win_idx中的idx:如果全部([在idx中为i匹配[i]):return True返回False#计算第五张牌获胜的概率#考虑到第四张牌没有赢N=10**7计数,总计=0,0n=54张卡的数量S=列表(范围(n))#全套数字C=随机抽样(S,16)#16选择的数字对于范围(N)内的iter:F=随机抽样(S,5)#五个抽取的数字#4圈和5圈后的宾果游戏记分卡matches4=[c in F[:-1]for c in c]matches5=[c in F for c in c]如果不赢(比赛4):总计+=1如果获胜(比赛5):计数+=1#经验概率和95%置信区间phat=计数/总数conf=1.96*np.sqrt(相位*(1相位)/总计)打印(f'分析:{1728/(-432-6*n+11*n**2-6*n**3+n**4):.5g}')打印(f'Monte Carlo:{count}/{total}={phat:.4g},或[{phat-conf:.4g{,{phat+conf:0.4g}](95%CI)')
运行此代码的结果是:
分析:0.00022768蒙特卡洛:2292/999478=0.0002292,或[0.0002198,0.0002386](95%置信区间)
不幸的是,由于我们试图估计如此小的概率,因此需要大量样本才能达到一个狭窄的置信区间。我在上面的模拟中使用了1000万个样本,这在我的笔记本电脑上花了大约4分钟。