求m人购票抽奖场景中第i个人获得第n等奖的概率
嘿,这个问题挺有意思的,我来一步步拆解给你看:
问题核心拆解
首先,我们可以把这个抽奖过程等价理解为:每次从所有票里抽一张,如果抽到已经获奖的人的票就作废,直到抽到未获奖的人,这个人就是下一个获奖者,直到所有人都拿到奖项。本质上,我们要算的是第i个人在所有获奖者中排第n位的概率。
关键观察与递归公式
先从简单的情况入手:
- 当n=1时,第i个人拿一等奖的概率很直观,就是他的票数占总票数的比例:
P(m, 1, i) = t_i / (t₁ + t₂ + ... + t_m),这里总票数记为T = Σt_j。
对于n>1的情况,我们可以用递归的思路:要让i拿第n等奖,必须先有n-1个不同的人在他之前获奖。具体来说:
- 第一个获奖的是某个j≠i,概率是
t_j / T; - 之后问题简化为:剩下m-1个人(去掉j),总票数变成
T - t_j,求i在这m-1个人里拿第n-1等奖的概率。
所以递归公式就是:
P(m, n, i) = Σ_{j≠i} [ (t_j / T) * P(m-1, n-1, i) ]
这里的P(m-1, n-1, i)是去掉j后的子问题概率,总票数为T - t_j,其他人的票数不变。
展开后的求和表达式
把递归公式展开,我们可以得到更直接的求和形式:第i个人拿第n等奖的概率,等于所有可能的「n-1个非i的人先获奖」的排列情况的概率之和。
具体来说,对于任意一组n-1个不同的非i的人(记为集合S),我们计算所有S中元素的排列顺序对应的概率,再乘以第n次抽中i的概率,最后对所有这样的集合S求和:
P(i, n) = t_i * Σ_{S⊆[m]\{i\}, |S|=n-1} [ ( Σ_{σ是S的排列} ( product_{k=1到n-1} t_{σ(k)} / (T - Σ_{l=1到k-1} t_{σ(l)}) ) ) / (T - Σ_{s∈S} t_s) ]
举个例子验证:当m=3,n=2时,i拿二等奖的概率就是:
(t_j / T) * (t_i / (T - t_j)) + (t_k / T) * (t_i / (T - t_k))
这和我们手动计算的结果一致,完全符合直觉。
特殊情况验证
当所有人的票数都相等(比如t_j=1),总票数T=m,此时每个位置的概率都是1/m,这和我们的公式计算结果一致——毕竟每个人只有一张票,抽奖顺序就是随机排列,每个位置的概率均等。
内容的提问来源于stack exchange,提问作者kpjoshi
相关产品推荐
相关产品推荐

