如果 X 是一个取非负值的随机变量的话,它的概率生成函数(probability generating function,PGF)是:
GX(z)=∑k≥0P(X=k)zk
性质
-
GX(1)=1
显然成立
-
G′X(1)=E(X)
考虑 G′X(z)=∑k≥0k⋅P(X=k)zk−1
所以 G′X(1)=E(X)
-
Var(X)=G′′X(1)+G′X(1)−G′X(1)2 (Var(X) 表示随机变量的方差)
因为有 Var(X)=E(X2)−E(X)2
然后 E(X2)=E(X(X−1))+E(X),E(X(X−1))=G′′X(1) 由此得证
-
如果 X 和 Y 是独立的,那么 GX+Y(z)=GX(z)GY(z)
考虑卷积意义易证
常见 PGF
均匀分布
随机变量 X 等概率取 {0,1,⋯,n−1} 中的每个值,它的 PGF 是:
Un(z)=1n(1+z+⋯+zn−1)=1−znn(1−z)
尴尬的是,这个式子在 z=1 时没有定义,如果使用洛必达法则的话,U(n)n 分母中还会出现 1−z 项,显然是不行的
但是可以通过 Un(1+z) 的麦克劳林级数来解决这个问题:
Un(1+z)=∞∑i=0U(i)ni!zi
与上一个式子联立可解得 U(m)n=(nm+1)n
二项分布
设硬币正面朝上概率为 p,反面向上概率为 q,满足 p+q=1
考虑投掷 n 次硬币,正面出现次数的 PGF:
Hn(z)=(q+pz)n=∑k≥0(nk)pkqn−kzk
负二项分布
还是考虑抛硬币,一直投掷硬币直到出现正面,求需要抛 k 次的概率
容易得出其 PGF 为:
∑k≥1qk−1pzk=pz1−qz
由此可以扩展到出现 n 个正面的情况,即:
(pz1−qz)n=∑k≥0(k−1k−n)pnqk−nzk
例题
练手题
求出 PGF:
Gn(z)=∑k≥0pk,nzk
的封闭形式,其中 pk,n 为 n 个物体恰有 k 个轮换的随机排列的概率
并求出它的期望
显然我们可以得出 pn,k=[nk]n!
所以 Gn(z)=∑k≥0[nk]n!zk=z¯¯¯nn!
z¯¯¯nn!=n∏k=1k−1+zk
第 k 项的系数和为 1,所以也可以看作 PGF,又因为 PGF 相乘相当于随机变量相加,所以可以对这些分别求导再相加
第 k 项的期望为 1k,所以 G′n(1)=Hn
歌唱王国
设 G(z) 为关于未结束字符串长度的 (伪)PGF
设 F(z) 为关于刚结束字符串长度的 PGF
那么我们要求的即为 F′(1)
可以发现,F 和 G 存在以下关系:
1+zG(z)=G(z)+F(z)
其意义为在未结束字符串后面随便加一个字符,它就包含了未结束和已结束两种情况
两边求导可得 zG′(z)+G(z)=G′(z)+F′(z),将 1 代入得 G(1)=F′(1),那么只需要求 G 即可
对于 F 和 G 还存在以下关系:
(zn)mG(z)=m∑i=1[preiA=sufiA]F(z)(zn)m−i
其中 n 为字符集大小,m 为字符串长度,pre/sufiA 表示字符串 A 的长度为 i 的前缀/后缀
其意义为向未结束字符串后边加一个目标字符串,其等价于以结束字符串向后面加目标字符串的 border
化简可得:
G(1)=m∑i=1[preiA=sufiA]ni
硬币游戏
和上一道题极其类似,只不过是求概率而且是多个串
G 的定义与上题类似,定义 Fi(z) 为关于使得第 i 个人获胜的字符串长度的 (伪)PGF,F(z)=∑Fi(z)
发现上题的第一个式子没用了,但是第二个式子仍有用:
可以扩展为:
(z2)mG(z)=n∑i=1m∑k=1[prekSi=sufkSl]Fl(z)(z2)m−k
其意义为向未结束字符串后面加第 l 个字符串,其等价于所有人胜利的序列向后加胜利的人的字符串与第 l 个不重合的部分
然后还有一个关系式为 F(1)=∑Fi(1)=1 然后 n+1 个未知数 n+1 个方程,高斯消元即可
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步