概率生成函式學習筆記

2022-05-08 19:24:09 字數 3377 閱讀 1280

本文借助 $2018$ 年楊懋龍的集訓隊** 《**生成函式在擲骰子問題上的應用》。

但由於作者水平有限,並沒有看懂有些式子的組合意義,僅能通過自己的推導得出結果。

本質是將期望的 $k$ 次下降冪寫成 $pgf$ 的 $k$ 階導數,並通過輔助函式求得。

題意$t$ 組資料,每次給定乙個字串,每次在 $1\sim n$ 中隨機乙個數新增到字串末端,當字串出現給定字串後停止,求期望長度。

題解設 $f(x)$ 表示長度為 $i$ 的概率生成函式,$g(x)$ 表示長度大於 $i$ 的概率生成函式,即未停止的概率。

則$$f(x)+g(x)=1+g(x)\cdot x$$

可以看成每次從未停止中加上一次字元可能結束也可能繼續。

$$g(x)\cdot (\dfracx)^m=\sum_^m a_i\cdot f(x)\cdot (\dfracx)^$$

$a_i\in \$,其中 $a_i$ 為字串的 $border$ 集合是否出現 $i$ 。

可以看成我們在乙個未停止串中新增當前字串那麼肯定停止,若提前停止那麼即為當前串的 $border$ 。

對第乙個式子求導帶入 $x=1$ 得

$$f'(1)=g(1)$$

而將 $x=1$ 帶入二式化簡可得

$$g(1)=\sum_^m a_i\cdot n^i$$

$\mathcal o(tm)$ 計算即可。

題意乙個 $m$ 面的公平骰子,求最後 $n$ 次結果相同就結束的期望次數或者求最後 $n$ 次結果全不同就結束的期望次數。

$n,m\leq 10^6$ 。

題解第一問:

設 $f(x)$ 表示答案的 $pgf$ ,$g(x)$ 表示還未結束的 $pgf$ ,則

$$f(x)+g(x)=g(x)\cdot x+1\\(g(x)-1)\cdot (\frac)^=\sum_^ f(x)\cdot (\frac)^$$

第二個式子表示列舉多了多少個能補。

解得$$f'(1)=g(1)=\dfrac$$

第二問:

設 $f(x)$ 表示答案的 $pgf$ ,$g(x)$ 表示還未結束的 $pgf$ ,同理可得

$$\beginf(x)+g(x)&=g(x)\cdot x+1\\(g(x)-1)\cdot \dfrac}\cdot x^&=\sum_^ f(x)\cdot x^\cdot \dfrac}\\\\f'(1)=g(1)&=(\sum_^ \dfrac}}+\dfrac}})\times m^\times \dfrac\\&=\sum_^ m^i\cdot \dfrac\times \dfrac\\&=\sum_^ m^i\cdot \dfrac\\&=\sum_^n m^i\cdot \dfrac\end$$ 

題意給定一棵根為 $1$ 的有根樹,定義 $e_$ 表示從 $s$ 開始隨機遊走,到 $t$ 停止的步數平方的期望,$sub_u$ 表示 $u$ 子樹中所有點。 

$q$ 次詢問,每次給定 $u,v$ ,求 $\sum _ e(x,y)$ ,保證 $sub_u\cap sub_v=\varnothing$ 。

題解定義 $f_u$ 表示 $u\rightarrow f_u$ 的概率生成函式。

先求一次的情況

$$\beginf_u&=\dfracx+\dfrac\sum_ xf_vf_u\\d\cdot f_u&=x+xf_u\sum_v f_v\\d\cdot f_u'&=1+f_u\sum_v f_v+xf_u'\sum_v f_v+xf_u\sum_v f_v'\end$$

$$\begind\cdot f_u'&=1+f_u\sum_v f_v+f_u'\sum_v f_v+f_u\sum_v f_v'\\&=1+(d-1)+(d-1)\cdot f_u'+\sum_v f_v'\\f'_u&=d+\sum_v f'_v\end$$

同理求二次

$$\beginf''_u=2(d-1)\cdot f'_u+2\sum_v f'_v+\sum_v f''_v+2f'_u\sum_v f'_v\end$$

同理我們得到 $g_u$ 表示 $f_u\rightarrow u$ 的概率生成函式的一階導和二階導。

而對於子樹情況可以處理出每個點到 $u/v$ 的生成函式,和上述同理。

時間複雜度 $\mathcal o(q\log n)$ 。

題意有 $n$ 個開關,每個開關有屬性 $s_i\in\$ ,$0$ 表示關,$1$ 表示開,還有屬性 $p_i$ 表示有 $\dfrac$ 的概率將其 $s_i$ 翻轉。

問期望次數使得所有開關均 $s_i=0$ 。

$1\leq n\leq 100,1\leq \sum p\leq 5\times 10^4$ 。

題解設 $\sum_^n p_i=p$ 。

由於開關有標號,用 $egf\&pgf$ 表示將 $s_i$ 變為 $0$ 的概率指數生成函式,設為 $f_i(x)$ 。

則$$\text \rightarrow f_i(x)=\dfrac)\cdot x^1}+\dfrac)^3\cdot x^3}+...=\dfracx}-e^x}}\\\text\rightarrow f_i(x)=\dfracx}+e^x}}$$

設 $f(x)=\prod_^n f_i(x)$ ,則 $[x^k] f(x)$ 表示次數為 $k$ 時滿足 $s_i$ 均為 $0$ 的概率。

但是有可能在 $k$ 前面就已經到達,那麼設 $g(x)$ 表示移動 $k$ 次且保持原狀態的概率。

$$g(x)=\prod_^n \dfracx}+e^x})}$$

設 $f(x)$ 的 $ogf$ 為 $f(x)$ ,$g(x)$ 的 $ogf$ 為 $g(x)$ ,答案的 $ogf$ 為 $h(x)$ 。

如何將 $egf\rightarrow ogf$ ,以 $f$ 為例,可以將函式寫成

$$f(x)=\sum_^p a_i e^ x}=\sum_^p \dfracx}\\g(x)=\sum_^p \dfracx}$$

$a_i,b_i$ 的求法可以暴力乘法揹包得到。

則$$h(x)g(x)=f(x)\\h(x)=\dfrac$$

由於 $h(x)$ 為 $pgf$ ,期望為 $h』(1)$ 。

$$h'(x)=(\dfrac)'=\dfrac$$

那麼只要求 $f』(1),f(1),g(1),g』(1)$ 即可。

但是觀察 $f,g$ 發現他們在 $x=1$ 時是不收斂的,因為當 $i=p$ 時分母會出問題。

但是答案一定是收斂的,那麼我們將 $f,g$ 均乘上 $(1-x)$ ,可以發現此時 $f,g$ 收斂。

則$$f(1)=a_p\\f'(1)=\sum_^p \dfrac-1} \\g(1)=b_p\\g'(1)=\sum_^p \dfrac-1}$$

將 $x=1$ 帶入 $h』(1)$ 即可解決。時間複雜度 $\mathcal o(n\sum p+p\log mod)$ 。

學習筆記 概率生成函式

如果對於數列 a 0 a 1 a 2 存在某個離散隨機變數 x 滿足 mathrm x i a i,那麼 a n n in mathbb n 的普通生成函式被稱為 x 的概率生成函式。也就是說,如果 x 是非負整數集 mathbb n 上的離散隨機變數,那麼x的概率生成函式為 f z mathbb ...

生成函式學習筆記

生成函式即為母函式 設 是任一數列,則形式冪級數 a t sum a it i 叫做數列 的常生成函式 引理 1 以 m k k 1,2,n 表示不定方程 x 1 x 2 x 3 x n r 中的未知數 x k 的可取值所成之集 以 a r 表示不定方程 x 1 x 2 x 3 x n r 滿足條件...

生成函式學習筆記

a是一類組合物件構成的集合 其中大小為i的物品數量為a i a x sum a n x n 組合元素可以理解為一種由基本元素構成的集合 這裡所說的seq a 是乙個以ogf為自變數的函式 表示的是有a中元素有序排列,大小相加構成的所有元素 所組成的集合 結合上文的兩個例子理解 f x 存在逆元的充要...