概率递增奖池抽奖模拟:100次期望获得多少奖品?
这个问题可以用动态规划来解决。设 $f_i$ 表示前 $i$ 次抽奖的期望获奖数量,$p_i$ 表示在第 $i$ 次抽奖中抽到奖品的概率。/n/n显然,$f_0=0$。对于 $i/geq 1$,有两种情况:/n/n1. 在第 $i$ 次抽奖中抽到奖品。这种情况下,前 $i$ 次抽奖的期望获奖数量为 $f_{i-1}-p_{i-1}+1$,其中 $p_{i-1}=0.5/times(1+0.1/times(i-1))$。/n/n2. 在第 $i$ 次抽奖中没抽到奖品。这种情况下,前 $i$ 次抽奖的期望获奖数量为 $f_{i-1}-p_{i-1}$。/n/n综上所述,有 $f_i=/begin{cases}f_{i-1}-p_{i-1}+1 & //text{概率为 }p_{i-1}//f_{i-1}-p_{i-1} & //text{概率为 }1-p_{i-1}/end{cases}$。/n/n根据上述转移方程和初始条件 $f_0=0$,可以使用循环来计算 $f_{100}$。以下是 Python 代码实现:/n/npython/np = [0.5 * (1 + 0.1 * i) for i in range(100)]/nf = [0] * 101/nfor i in range(1, 101):/n f[i] = f[i-1] - p[i-1] + 1 if random.random() < p[i-1] else f[i-1] - p[i-1]/nprint(f[100])/n/n/n运行多次可以发现,期望获得的奖品数量大约在 36 左右。
原文地址: https://www.cveoy.top/t/topic/lHD1 著作权归作者所有。请勿转载和采集!