假设有一副被打乱的扑克牌,52张,其中13张黑桃,一个人从这副牌里随机的抽牌,每次抽一张,并且不放回,假设在第X次抽牌的时候,第一次抽到黑桃。请问X的数学期望是多少
2个回答
这个题目应该有常规解法吧,但是我没想出来。我用的是递推的方法。
假设一共有$k$张牌,其中13张是黑桃,我随机地不放回地抽,在第$X_{k}$的时候,第一次抽到黑桃。
那么显然$\text{E}(X_{13})=1$。因为13张都是黑桃,我们把它们排一列,头一张必须是黑桃。
那么$\text{E}(X_{14})$怎么算呢?相当于在上面13张黑桃的基础上,任意插入一张其他牌。这张牌以$\frac{\text{E}(X_{13})}{14}$的概率插在第一张黑桃的前面,以$1-\frac{\text{E}(X_{13})}{14}$的概率插在第一张黑桃的后面。所以
$$\text{E}(X_{14})=\frac{\text{E}(X_{13})}{14}(\text{E}(X_{13})+1)+\left(1-\frac{\text{E}(X_{13})}{14}\right)\text{E}(X_{13}).$$
那么对于任意的$k$,已知$\text{E}(X_{k})$,怎么计算$\text{E}(X_{k+1})$呢?相当于我们已经排好了$k$张,再插入一张非黑桃的牌,这张牌排在第一张黑桃前面的概率是$\frac{\text{E}(X_{k})}{k+1}$,排在第一张黑桃后面的概率是$1-\frac{\text{E}(X_{k})}{k+1}$,那么
\begin{eqnarray*}\text{E}(X_{k+1})&=&\frac{\text{E}(X_{k})}{k+1}(\text{E}(X_{k})+1)+\left(1-\frac{\text{E}(X_{k})}{k+1}\right)\text{E}(X_{k})\\&=&\frac{k+2}{k+1}\text{E}(X_{k})\end{eqnarray*}
下面,我们就根据上面的递推式子
$$\text{E}(X_{14})=\frac{15}{14}$$
$$\text{E}(X_{15})=\frac{16}{15}\frac{15}{14}=\frac{16}{14}$$
$$\text{E}(X_{16})=\frac{17}{16}\frac{16}{14}=\frac{17}{14}$$
$$\text{E}(X_{17})=\frac{18}{17}\frac{17}{14}=\frac{18}{14}$$
一直到$52$,我们就可以得到
$$\text{E}(X_{52})=\frac{53}{52}\frac{52}{14}=\frac{53}{14}\approx 3.79.$$
所以我们期望在第3.79次第一次抽到黑桃。
找了下,应该用Negative_hypergeometric_distribution。定义是N个元素中有K个正元素,不放回地(without replacements)随机取一个元素,直到有r个负元素被取出,其中有k个正元素。在这个问题里N=52,负元素是黑桃,K=52-13=39,r=1,k+1是步数。按均值公式$E(k)=\dfrac{rK}{N-K+1}=\dfrac{39}{14}$,最后步数的期望是$E(k)+1=\dfrac{53}{14}\approx 3.79$
用MC验证下,就是3.79左右。
import numpy as np
import matplotlib.pyplot as plt
from numpy import random
n=1000000
k=52
x0=np.arange(k)
t=np.zeros([n,1])
for i in range(n):
x=random.permutation(k)
idx=x<13
temp=x0[idx]
t[i]=temp[0]+1
E=np.mean(t)
print(E)
plt.figure()
plt.hist(t,100,normed=True)
plt.plot([E,E],[0,1],'--',label='mean')
plt.legend()
plt.show()
---------------------
再分享张图,我是根据这图才找到的。