zoukankan      html  css  js  c++  java
  • 概率生成函数

    概念

    (X) 为非负整数集 (mathbb{N}) 上的离散随机变量,其满足 ( ext{Pr}(X=i)=a_i),则称 (a_n (n in mathbb{N})) 的生成函数为 (X) 的概率生成函数,得:

    [large F(z)=mathbb E(z^X)=sum_{i=0}^infty ext{Pr}(X=i)z^i ]

    因为 (X) 为非负整数集 (mathbb{N}) 上的离散随机变量,所以有:

    [large F(1)=sum_{i=0}^infty ext{Pr}(X=i)=1 ]

    (F(z)) 求导,得:

    [large {F}'(z)=sum_{i=0}^infty i ext{Pr}(X=i)z^{i-1} ]

    (X) 的期望为:

    [large E(X)={F}'(1)=sum_{i=0}^infty i ext{Pr}(X=i) ]

    (X) 的方差为:

    [large large Var(X)={F}''(1)+{F}'(1)-({F}'(1))^2 ]

    应用

    [CTSC2006] 歌唱王国

    给定长为 (m) 的序列 (A),每次等概率随机一个 (1)(n) 的数加到初始为空的序列 (B) 的末尾,当 (A)(B) 的子串时,停止随机,求序列 (B) 的期望长度。链接

    (m leqslant 10^5)

    (f_i)(B) 长度为 (i) 时停止的概率,(g_i)(B) 长度为 (i) 时未停止的概率,分别得概率生成函数 (F(x))(G(x)),所求即为 ({F}'(1))

    (a_i) 表示 (A[1,i]) 是否为 (A)( ext{border}),其取值为 (0)(1),得:

    [largeegin{aligned} xG(x)+1&=F(x)+G(x) \ G(x)left( frac{1}{n}x ight)^m&=sum_{i=1}^ma_iF(x)left( frac{1}{n}x ight)^{m-i} end{aligned} ]

    第一个式子为未停止时往后加一个数字,其可能停止,也可能未停止,加 (1)(B) 为空的情况。第二个式子是向未停止的序列 (B) 直接加上序列 (A),其一定会停止,但发现不一定要全部加上序列 (A),这里还需考虑 ( ext{border})

    对第一个式子求导并代入 (x=1) 得:

    [largeegin{aligned} G(x)+x{G}'(x)&={F}'(x)+{G}'(x) \ {F}'(1)&=G(1) \ end{aligned} ]

    (x=1) 代入第二个式子得:

    [largeegin{aligned} G(1)left( frac{1}{n} ight)^m&=sum_{i=1}^ma_iF(1)left( frac{1}{n} ight)^{m-i} \ G(1)&=sum_{i=1}^ma_in^i \ end{aligned} ]

    因此有 ({F}'(1)=sumlimits_{i=1}^ma_in^i),用 (KMP) 即可 (O(m)) 求解。

    [SDOI2017] 硬币游戏

    给定 (n) 个长度为 (m)(01) 序列 (A_i),序列互不相同,每次等概率随机 (0)(1) 加到初始为空的序列 (B) 的末尾,当有 (A_i)(B) 的子串时停止,对于每个 (i) 求出因其停止的概率。链接

    (1 leqslant n, m leqslant 300)

    (f_{i,j})(B) 长度为 (j) 时因 (i) 停止的概率,(g_i)(B) 长度为 (i) 时未停止的概率,分别得概率生成函数 (F_i(x))(G(x)),所求即为 (F_i(1))

    (a_{i,j,k}) 表示 (A_i) 长度为 (k) 的前缀是否和 (A_j) 长度为 (k) 的后缀相等,其取值为 (0)(1),得:

    [large G(x)left( frac{1}{2}x ight)^m=sum_{j=1}^nsum_{k=1}^ma_{i,j,k}F_j(x)left( frac{1}{2}x ight)^{m-k} ]

    和上一题一样,化简得:

    [large large G(1)=sum_{j=1}^nsum_{k=1}^ma_{i,j,k}F_j(1)2^k ]

    注意到:

    [large sum_{i=1}^n F_i(1)=1 ]

    用高斯消元即可 (O(n^3)) 求解。

  • 相关阅读:
    spoj 104 Highways (最小生成树计数)
    bzoj 1912 巡逻(树直径)
    BZOJ 3534 重建
    BZOJ 3143 游走(高斯消元)
    在Windows下编译PyCaffe
    caffe的Matlab接口的使用方法
    NewRelic性能监控之APM
    MariaDB-10.x二进制包安装
    mongoDB-3.x Balancer Management
    mongoDB-3.x集群管理
  • 原文地址:https://www.cnblogs.com/lhm-/p/14270479.html
Copyright © 2011-2022 走看看