LOADING
603 字
3 分钟
MEX 的期望

MEX 的期望 (Expectation of MEX)

题目描述

给出两个正整数 n,kn, k。你需要计算:从 0,1,,n10, 1, \dots, n-1nn 个整数中随机选择 kk 个不同的整数,组成的集合的 MEX\text{MEX} 的期望是多少?

可以证明答案为一个有理分数 xy\frac{x}{y},你需要输出这个分数对 109+710^9 + 7 取模后的结果。

MEX\text{MEX} 定义: 表示集合内最小的未出现的自然数。

  • 例如:MEX(1,0,2,4)=3\text{MEX}(1, 0, 2, 4) = 3
  • 例如:MEX(1,2,3,4)=0\text{MEX}(1, 2, 3, 4) = 0

输入格式

第一行一个正整数 TT (1T1041 \le T \le 10^4),表示数据组数。

对于每一组数据,输入两个正整数 n,kn, k (1kn1091 \le k \le n \le 10^9)。


输出格式

对于每一组数据,输出一行一个整数,表示期望 MEX\text{MEX}109+710^9 + 7 取模后的结果。


样例输入 1

5
3 2
10 7
1000 278
1000000 114514
1000000000 20250406

这道题的结论非常简洁,可以通过期望的定义和组合恒等式推导出来。

核心推导过程

  1. 期望公式转换

    对于非负整数随机变量 XX,其期望 E[X]=i=1P(Xi)E[X] = \sum_{i=1}^{\infty} P(X \ge i)。在这里,XX 是集合的 MEX。

    MEXiMEX \ge i 意味着整数 0,1,2,,i10, 1, 2, \dots, i-1 都在你选择的 kk 个数中。

  2. 计算概率 P(MEXi)P(MEX \ge i)

    • 总的选择方案数:从 nn 个数中选 kk 个,即 (nk)\binom{n}{k}
    • 满足 MEXiMEX \ge i 的方案数:由于 0,1,,i10, 1, \dots, i-1ii 个数必须选,剩下的 kik-i 个数必须从剩余的 nin-i 个数中选,即 (niki)\binom{n-i}{k-i}
    • 因此,P(MEXi)=(niki)(nk)P(MEX \ge i) = \frac{\binom{n-i}{k-i}}{\binom{n}{k}}
  3. 求和计算

    E[MEX]=i=1k(niki)(nk)E[MEX] = \sum_{i=1}^{k} \frac{\binom{n-i}{k-i}}{\binom{n}{k}}

    注意到 ii 的最大值只能是 kk(因为你总共只选了 kk 个数,MEX 不可能超过 kk)。

    提取常数项:

    E[MEX]=1(nk)i=1k(niki)E[MEX] = \frac{1}{\binom{n}{k}} \sum_{i=1}^{k} \binom{n-i}{k-i}

    对求和项使用 朱世杰恒等式(Hockey-stick Identity),即

    j=rm(jr)=(m+1r+1)\sum_{j=r}^m \binom{j}{r} = \binom{m+1}{r+1}

    我们将求和项倒过来看:

    (nk0)+(nk+11)++(n1k1)\binom{n-k}{0} + \binom{n-k+1}{1} + \dots + \binom{n-1}{k-1}

    根据恒等式

    i=0r(n+ii)=(n+r+1r)\sum_{i=0}^r \binom{n+i}{i} = \binom{n+r+1}{r}

    这里 nn 对应 nkn-krr 对应 k1k-1

    求和结果为

    ((nk)+(k1)+1k1)=(nk1)\binom{(n-k) + (k-1) + 1}{k-1} = \binom{n}{k-1}
  4. 最终化简

    E[MEX]=(nk1)(nk)E[MEX] = \frac{\binom{n}{k-1}}{\binom{n}{k}}

    展开组合数:

    n!(k1)!(nk+1)!×k!(nk)!n!=k!(k1)!×(nk)!(nk+1)!=knk+1\frac{n!}{(k-1)!(n-k+1)!} \times \frac{k!(n-k)!}{n!} = \frac{k!}{(k-1)!} \times \frac{(n-k)!}{(n-k+1)!} = \frac{k}{n-k+1}

结论

对于给定的 n,kn, k,期望值为:

E[MEX]=knk+1(mod109+7)E[MEX] = \frac{k}{n - k + 1} \pmod{10^9+7}

时间复杂度分析

  • 时间复杂度:每个测试用例只需计算一次逆元,复杂度为 O(logMOD)O(\log MOD)。对于 T=104T=10^4 组数据,总时间约为 O(TlogMOD)O(T \log MOD),完全满足 1s 的时限。
  • 空间复杂度O(1)O(1)
MEX 的期望
/posts/2026-07-01-/
作者
KEYLUN
发布于
2026-07-01
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时