关于一道期望经典题目的直接做法

P1291 [SHOI2002] 百事世界杯之旅

简要题意:不断在 \(1,2,\cdots,n\) 中均匀随机抽取一个数,求首次每一个数都被抽到的期望次数。

应用期望的线性性进行 DP 很容易得到答案为 \(nH_n\)。那么,如果不用期望性质直接暴力求解能不能做?


下面是推导中要用到的式子,证明将在文末给出:

\[S_2(n,m)=\dfrac{1}{m!} \sum\limits_{i=0}^m (-1)^{m-i} \dbinom{m}{i} i^n \tag{1} \]

\[\sum\limits_{m \geq n} m x^{m-1}=\dfrac{(1-n) x^n+n x^{n-1}}{(1-x)^2} \tag{2} \]

\[\sum\limits_{i=0}^n (-1)^i \dbinom{n}{i} i^m = \begin{cases} 0, & m < n\\ (-1)^n n! S_2(m,n), & m \geq n \end{cases} \tag{3} \]

\[\sum\limits_{i=1}^n (-1)^{i} \dfrac{1}{i} \dbinom{n}{i}=-nH_n \tag{4} \]


记首次每一个数都被抽到的次数为随机变量 \(X\)。事件 \(E\)\(X=m\);事件 \(E_1\)\(m-1\) 次内恰抽中了 \(n-1\) 个数;事件 \(E_2\) 为第 \(m\) 次抽中了未抽过的数。则有 \(E=E_1E_2\)

\[P(E)=P(E_1) P(E_2 \mid E_1)=\dbinom{n}{1} \dfrac{(n-1)!S_2(m-1,n-1)}{n^{m-1}} \cdot \dfrac{1}{n}=(n-1)!\dfrac{S_2(m-1,n-1)}{n^{m-1}} \]

\[\begin{aligned} E(X) &= (n-1)! \sum\limits_{m \geq n} \dfrac{m}{n^{m-1}} S_2(m-1,n-1)\\ &= (n-1)! \sum\limits_{m \geq n} \dfrac{m}{n^{m-1}} \dfrac{1}{(n-1)!} \sum\limits_{i=0}^{n-1} (-1)^{n-1-i} \dbinom{n-1}{i} i^{m-1}, \text{with (1)}\\ &= \sum\limits_{i=0}^{n-1} (-1)^{n-1-i} \dbinom{n-1}{i} \sum\limits_{m \geq n} m (\dfrac{i}{n})^{m-1}\\ &= \sum\limits_{i=0}^{n-1} (-1)^{i} \dbinom{n-1}{i} \sum\limits_{m \geq n} m (1-\dfrac{i+1}{n})^{m-1}, \text{with }i \rightarrow n-1-i\\ &= \sum\limits_{i=0}^{n-1} (-1)^{i} \dbinom{n-1}{i} \sum\limits_{m \geq n} m \big(1-\dfrac{i+1}{n} \big)^{m-1}\\ \end{aligned} \]

\(t=\dfrac{i+1}{n}\),由式 \(\text{(2)}\) 得:

\[\sum\limits_{m \geq n} m (1-\dfrac{i+1}{n})^{m-1}=\dfrac{(1-n)(1-t)^n+n(1-t)^{n-1}}{t^2} \triangleq \sum\limits_{k=-2}^{n-2} f_k(n) t^k \]

其中 \(f_k(n)\) 为关于 \(n\) 的函数,且有:

\[f_{-2}(n)=(1-n)+n=1 \]

\[f_{-1}(n)=-n(1-n)-n(n-1)=0 \]

\[\begin{aligned} E(X) &= \sum\limits_{i=0}^{n-1} (-1)^{i} \dbinom{n-1}{i} \sum\limits_{k=-2}^{n-2} f_k(n) \big( \dfrac{i+1}{n} \big)^k\\ &= \sum\limits_{k=-2}^{n-2} f_k(n) \sum\limits_{i=0}^{n-1} (-1)^{i} \dbinom{n-1}{i} \big( \dfrac{i+1}{n} \big)^k\\ \end{aligned} \]

然而,当 \(0 \leq k \leq n-2\) 时,由式 \(\text{(3)}\),第二层和式的值始终为 \(0\),故只剩下 \(k=-2\) 的情况:

\[\begin{aligned} E(X) &= n^2 \sum\limits_{i=0}^{n-1} (-1)^{i} \dfrac{1}{(i+1)^2} \dbinom{n-1}{i} \\ &= n \sum\limits_{i=0}^{n-1} (-1)^{i} \dfrac{1}{i+1} \dbinom{n}{i+1} \\ &= -n \sum\limits_{i=1}^{n} (-1)^{i} \dfrac{1}{i} \dbinom{n}{i} \\ &= nH(n), \text{with (4)} \end{aligned} \]

比想象中麻烦多了,不知道有没有更简单的方法。


下面是引理证明:

\((1)\):第二类斯特林数的通项公式,参考组合意义直接容斥即可得到。

\((2)\):错位相减,或者用方便的生成函数:

\[F(x)=\sum\limits_{i \geq n} x^k=\dfrac{x^n}{1-x} \]

\[F'(x)=\sum\limits_{i \geq n} k x^{k-1}=\dfrac{nx^{n-1}(1-x)+x^n}{(1-x)^2}=\dfrac{(1-n) x^n+n x^{n-1}}{(1-x)^2} \]

\((3)\):普通幂转化为下降幂,再用吸收公式。

\[\begin{aligned} & \quad \sum\limits_{i=0}^n (-1)^i \dbinom{n}{i} i^m\\ &=\sum\limits_{i=0}^n (-1)^i \dbinom{n}{i} \sum\limits_{j=0}^m S_2(m,j) i^{\underline{j}}\\ &=\sum\limits_{j=0}^m S_2(m,j) \sum\limits_{i=0}^n (-1)^i \dbinom{n}{i} i^{\underline{j}}\\ &=\sum\limits_{j=0}^m n^{\underline{j}} S_2(m,j) \sum\limits_{i=0}^n (-1)^i \dbinom{n-j}{i-j} \\ &=\sum\limits_{j=0}^m (-1)^j n^{\underline{j}} S_2(m,j) [n=j] \\ &= \begin{cases} 0, & m < n\\ (-1)^n n! S_2(m,n), & m \geq n \end{cases} \end{aligned} \]

\((4)\):可以见 随机变量学习笔记。给出三种求法(参考 @ do_while_true 的题解 与 UOJ 群友给出的方法):

组合做法

如果不是 \(\frac{1}{i}\) 而是 \(\frac{1}{i+1}\),就可以直接吸收掉。

既然不能改变 \(\frac{1}{i}\),那能不能把组合数的下指标变成 \(i-1\) 呢?应用上指标求和:

\[\begin{aligned} S_n &= \sum\limits_{i=1}^n (-1)^{i} \sum\limits_{j=0}^{n-1} \dbinom{j}{i-1} \dfrac{1}{i}\\ &= \sum\limits_{i=1}^n (-1)^{i} \sum\limits_{j=0}^{n-1} \dfrac{1}{j+1} \dbinom{j+1}{i}\\ &= \sum\limits_{j=0}^{n-1} \dfrac{1}{j+1} \sum\limits_{i=1}^n (-1)^{i} \dbinom{j+1}{i}\\ &= \sum\limits_{j=0}^{n-1} \dfrac{1}{j+1} (0-1)\\ &= -\sum\limits_{j=1}^{n} \dfrac{1}{j}\\ \end{aligned} \]

代数做法(微积分)

\[\begin{aligned} S_n &= \sum\limits_{i=1}^n (-1)^{i} \dbinom{n}{i} \int_0^1 t^{i-1} dt\\ &= \int_0^1 \dfrac{dt}{t} \sum\limits_{i=1}^n (-1)^{i} \dbinom{n}{i} t^{i}\\ &= \int_0^1 \dfrac{(1-t)^n-1}{t} dt\\ &=-\int_0^1 \dfrac{s^n-1}{1-s} ds,\text{with } s=1-t\\ &=\int_0^1 \sum\limits_{k=0}^{n-1} s^k ds\\ &= -\sum\limits_{k=1}^{n} \dfrac{1}{k}\\ \end{aligned} \]

生成函数做法

\[\begin{aligned} F(x) &= \sum\limits_{k \geq 0} S_k x^k\\ &= \sum\limits_{k \geq 0} \sum\limits_{i=1}^k (-1)^{i} \dfrac{1}{i} \dbinom{k}{i} x^k\\ &= \sum\limits_{i \geq 1} (-1)^{i} \dfrac{1}{i} \sum\limits_{k \geq i} \dbinom{k}{i} x^k\\ &= \sum\limits_{i \geq 1} (-1)^{i} \dfrac{1}{i} \dfrac{x^i}{(1-x)^{i+1}}\\ &= \dfrac{1}{1-x} \sum\limits_{i \geq 1} \dfrac{[-x/(1-x)]^i}{i}\\ &= -\dfrac{1}{1-x} \ln(1+\dfrac{x}{1-x})\\ &= \dfrac{\ln(1-x)}{1-x}\\ &=- \big(\sum\limits_{i \geq 0} x^i \big) \big(\sum\limits_{j \geq 1} \dfrac{x^j}{j} \big) \end{aligned} \]

\[S_n(x)=[x^n]F(x)= -\sum\limits_{j=1}^n \dfrac{1}{j} \]

posted @ 2024-07-09 22:24  苹果蓝17  阅读(68)  评论(1编辑  收藏  举报