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

P1291 [SHOI2002] 百事世界杯之旅

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

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


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

(1)S2(n,m)=1m!i=0m(1)mi(mi)in

(2)mnmxm1=(1n)xn+nxn1(1x)2

(3)i=0n(1)i(ni)im={0,m<n(1)nn!S2(m,n),mn

(4)i=1n(1)i1i(ni)=nHn


记首次每一个数都被抽到的次数为随机变量 X。事件 EX=m;事件 E1m1 次内恰抽中了 n1 个数;事件 E2 为第 m 次抽中了未抽过的数。则有 E=E1E2

P(E)=P(E1)P(E2E1)=(n1)(n1)!S2(m1,n1)nm11n=(n1)!S2(m1,n1)nm1

E(X)=(n1)!mnmnm1S2(m1,n1)=(n1)!mnmnm11(n1)!i=0n1(1)n1i(n1i)im1,with (1)=i=0n1(1)n1i(n1i)mnm(in)m1=i=0n1(1)i(n1i)mnm(1i+1n)m1,with in1i=i=0n1(1)i(n1i)mnm(1i+1n)m1

t=i+1n,由式 (2) 得:

mnm(1i+1n)m1=(1n)(1t)n+n(1t)n1t2k=2n2fk(n)tk

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

f2(n)=(1n)+n=1

f1(n)=n(1n)n(n1)=0

E(X)=i=0n1(1)i(n1i)k=2n2fk(n)(i+1n)k=k=2n2fk(n)i=0n1(1)i(n1i)(i+1n)k

然而,当 0kn2 时,由式 (3),第二层和式的值始终为 0,故只剩下 k=2 的情况:

E(X)=n2i=0n1(1)i1(i+1)2(n1i)=ni=0n1(1)i1i+1(ni+1)=ni=1n(1)i1i(ni)=nH(n),with (4)

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


下面是引理证明:

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

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

F(x)=inxk=xn1x

F(x)=inkxk1=nxn1(1x)+xn(1x)2=(1n)xn+nxn1(1x)2

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

i=0n(1)i(ni)im=i=0n(1)i(ni)j=0mS2(m,j)ij_=j=0mS2(m,j)i=0n(1)i(ni)ij_=j=0mnj_S2(m,j)i=0n(1)i(njij)=j=0m(1)jnj_S2(m,j)[n=j]={0,m<n(1)nn!S2(m,n),mn

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

组合做法

如果不是 1i 而是 1i+1,就可以直接吸收掉。

既然不能改变 1i,那能不能把组合数的下指标变成 i1 呢?应用上指标求和:

Sn=i=1n(1)ij=0n1(ji1)1i=i=1n(1)ij=0n11j+1(j+1i)=j=0n11j+1i=1n(1)i(j+1i)=j=0n11j+1(01)=j=1n1j

代数做法(微积分)

Sn=i=1n(1)i(ni)01ti1dt=01dtti=1n(1)i(ni)ti=01(1t)n1tdt=01sn11sds,with s=1t=01k=0n1skds=k=1n1k

生成函数做法

F(x)=k0Skxk=k0i=1k(1)i1i(ki)xk=i1(1)i1iki(ki)xk=i1(1)i1ixi(1x)i+1=11xi1[x/(1x)]ii=11xln(1+x1x)=ln(1x)1x=(i0xi)(j1xjj)

Sn(x)=[xn]F(x)=j=1n1j

posted @   苹果蓝17  阅读(145)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示