目录
603 字
3 分钟
MEX 的期望
MEX 的期望 (Expectation of MEX)
题目描述
给出两个正整数 n,k。你需要计算:从 0,1,…,n−1 这 n 个整数中随机选择 k 个不同的整数,组成的集合的 MEX 的期望是多少?
可以证明答案为一个有理分数 yx,你需要输出这个分数对 109+7 取模后的结果。
MEX 定义: 表示集合内最小的未出现的自然数。
- 例如:MEX(1,0,2,4)=3
- 例如:MEX(1,2,3,4)=0
输入格式
第一行一个正整数 T (1≤T≤104),表示数据组数。
对于每一组数据,输入两个正整数 n,k (1≤k≤n≤109)。
输出格式
对于每一组数据,输出一行一个整数,表示期望 MEX 对 109+7 取模后的结果。
样例输入 1
1523 2310 741000 27851000000 11451461000000000 20250406这道题的结论非常简洁,可以通过期望的定义和组合恒等式推导出来。
核心推导过程
-
期望公式转换:
对于非负整数随机变量 X,其期望 E[X]=∑i=1∞P(X≥i)。在这里,X 是集合的 MEX。
MEX≥i 意味着整数 0,1,2,…,i−1 都在你选择的 k 个数中。
-
计算概率 P(MEX≥i):
- 总的选择方案数:从 n 个数中选 k 个,即 (kn)。
- 满足 MEX≥i 的方案数:由于 0,1,…,i−1 这 i 个数必须选,剩下的 k−i 个数必须从剩余的 n−i 个数中选,即 (k−in−i)。
- 因此,P(MEX≥i)=(kn)(k−in−i)。
-
求和计算:
E[MEX]=i=1∑k(kn)(k−in−i)注意到 i 的最大值只能是 k(因为你总共只选了 k 个数,MEX 不可能超过 k)。
提取常数项:
E[MEX]=(kn)1i=1∑k(k−in−i)对求和项使用 朱世杰恒等式(Hockey-stick Identity),即
j=r∑m(rj)=(r+1m+1)我们将求和项倒过来看:
(0n−k)+(1n−k+1)+⋯+(k−1n−1)根据恒等式
i=0∑r(in+i)=(rn+r+1)这里 n 对应 n−k,r 对应 k−1。
求和结果为
(k−1(n−k)+(k−1)+1)=(k−1n) -
最终化简:
E[MEX]=(kn)(k−1n)展开组合数:
(k−1)!(n−k+1)!n!×n!k!(n−k)!=(k−1)!k!×(n−k+1)!(n−k)!=n−k+1k
结论
对于给定的 n,k,期望值为:
E[MEX]=n−k+1k(mod109+7)时间复杂度分析
- 时间复杂度:每个测试用例只需计算一次逆元,复杂度为 O(logMOD)。对于 T=104 组数据,总时间约为 O(TlogMOD),完全满足 1s 的时限。
- 空间复杂度:O(1)。
部分信息可能已经过时