奇妙的生成函数

生成函数无敌!这些章节都是想到哪写到哪,不要在意顺序

 



 

对小质数取模的一些东西


\(\text{Lucas}\) 定理:

\[\binom{n}{m} \equiv \binom{\lfloor \frac{n}{p} \rfloor}{\lfloor \frac{m}{p} \rfloor} \binom{n \bmod p}{m \bmod p} \pmod p \]

证明:

观察 \((1+x)^p \bmod p\) ,有 \((1+x)^p \equiv \sum_{i=0}^{p}\binom{p}{i}x^i \equiv 1+x^p \pmod p\) ,对于 \(n \ge p\) ,令 \(n=ap+b\) ,有

\[(1+x)^n \equiv (1+x)^{ap+b} \equiv \big[(1+x)^p\big]^a(1+x)^b \equiv (1+x^p)^a(\sum_{i=0}^b \binom{b}{i}x^i) \pmod p \]

由于 \((1+x^p)^a\) 系数非 \(0\) 的次数形如 \(kp(k \in \mathbb{N})\) ,又因为 \(b<p\) ,令 \(m=cp+d\)

\[\binom{n}{m} \equiv [x^m](1+x)^n \equiv [x^{cp}](1+x^p)^a \cdot [x^d](1+x)^b \equiv \binom{a}{c}\binom{b}{d} \equiv \binom{\lfloor \frac{n}{p} \rfloor}{\lfloor \frac{m}{p} \rfloor} \binom{n \bmod p}{m \bmod p} \pmod p \]

\(\blacksquare\)

思考一下对于一个 \(n\) 次多项式 \(F(x)\)\(F(x)^m \bmod p\) 咋算,先考虑计算 \([x^k]F(x)^m \bmod p\)

我们令 \(i\) 次项系数 \(f_i\) 贡献了 \(b_i\) 次,则要满足 \(\sum_{i=0}^n b_i=m,\sum_{i=0}^n ib_i=k\) ,一组 \(b_i\) 的贡献为

\[\prod_{i=0}^n \binom{m-\sum\limits_{j=0}^{i-1}b_j}{b_i} \]

若是求 \([x^k]F^p(x) \bmod p\) 根据 \(\text{Lucas}\) 定理,贡献不为 \(0\) 必需有 \(\forall i \in [0,n] \cap \mathbb{N},p \mid b_i\) ,故能推出

\[[x^k]F(x)^p \bmod p= \begin{cases} [x^{\frac{k}{p}}]F(x) \bmod p & p \mid k \\ 0 & p \not \mid k \end{cases} \]

故有 \(F(x)^p \equiv F(x^p) \pmod p\) ,进一步的 \(F(x)^m \equiv F(x^p)^aF(x)^b \pmod p\)

 

「LibreOJ NOI Round #2」简单算术

上面都讲完了,就是 \([x^k]F(x)^m \equiv \sum\limits_{i \equiv k \pmod p}[x^{\frac{k-i}{p}}]F(x)^a \cdot [x^i]F(x)^b \pmod p\) ,先预处理个 \(F(x)^i \quad (i \in [0,p))\)

所以每一层递推可以维护一个数组 \(g_j\) 表示上面枚举的 \(i\)\(j=\lfloor \frac{i}{p} \rfloor\) 的系数,可以发现这个数组每层最高不超过 \(O(n)\) ,所以复杂度为 \(O(n^2p^2)-O(Tn^2 \log_p m)\)

当然,若 \(T\) 很大, \(p\) 很小的时候,可以考虑优化 \(\log_p m\) 注意到对于 \(P=p^c\) 上面的式子同样成立,这样 \(\log_p m\) 就变小了

评测链接

 


第二类斯特林数

接下来探讨第二类斯特林数对小质数取模时的做法

我们知道(其实不太知道)第二类斯特林数第 $m$ 列的 $\text{OGF}$ 为:

$$F_m(x)=\sum_{n \ge m}\begin{Bmatrix}{n}\\{m}\end{Bmatrix}x^n=\frac{x^m}{\prod\limits_{i=1}^m(1-ix)}$$

 

证明:

容易知道 $F_0(x)=1$

$$F_m(x)=\sum_{n \ge m}\begin{Bmatrix}{n}\\{m}\end{Bmatrix}x^n=m\sum \begin{Bmatrix}{n-1}\\{m}\end{Bmatrix}x^n+\sum_n\begin{Bmatrix}{n-1}\\{m-1}\end{Bmatrix}x^n=m \cdot x F_m(x)+xF_{m-1}(x)$$

$$F_m(x)=\frac{x}{1-mx}F_{m-1}(x)=\frac{x^m}{\prod\limits_{i=1}^m(1-ix)}$$

得证

 

我们又知道 $\prod\limits_{i=1}^{p-1}(1-ix) \equiv (1-x^{p-1}) \pmod p$ (暴力拆开?)

令 $m=ap+b$ ,

$$\begin{Bmatrix}{n}\\{m}\end{Bmatrix}=[x^n]F_m(x) \equiv [x^{n-m}]\frac{1}{(1-x^{p-1})^a\prod\limits_{i=1}^b(1-ix)} \equiv [x^{n-m}]\frac{\prod\limits_{i=b+1}^{p-1}(1-ix)}{(1-x^{p-1})^{a+1}} \pmod p$$

$$\frac{1}{1-x^c}=\sum_{i=0}x^{ic}$$

我们同时知道

$$\frac{1}{(1-x^c)^d}=\sum_{i=0}\binom{i+d-1}{d-1} x^{ic}$$

分母处理完了,我们考虑分子:

令 $d=(p-1-b)-c$

$$[x^c]\prod_{i=b+1}^{p-1}(1-ix) \equiv [x^c]\prod_{i=1}^{p-1-b}(ix+1) \pmod p$$

$$[x^c]\prod_{i=1}^{p-1-b}(ix+1) \equiv [x^d]\prod_{i=1}^{p-1-b}(x+i) \equiv [x^d]x^{\overline{p-b}} \pmod p$$

而 $x^{\overline{c}}$ 因为质数较小,可以用前缀积求解点值

然后 $\text{IDFT}$ 一下:(记 $A_i$ 为 $\text{DFT}(x^{\overline{c}})$ 数组)

$$[x^d]x^{\overline{c}}=\frac{1}{p-1}\sum_{i=0}^N A_i g_{N}^{-id}$$

于是整合一下:

记 $c(p-1)+d=n-m$

$$\begin{Bmatrix}{n}\\{m}\end{Bmatrix} \equiv [x^c]\frac{1}{(1-x)^{a+1}} \times [x^d]\prod_{i=1}^{p-1-b}(1+ix) \equiv \binom{c+a}{a} \times [x^{(p-1-b)-d}]x^{\overline{p-b}} \pmod p$$

然后就可以 $\text{O}(p+\log_p{n})$ 求解了

 


第一类斯特林数

解决完麻烦的第二类斯特林数,来看看较为简单(?)的第一类斯特林数

第一类斯特林数第 $n$ 行的 OGF 为

$$F_n(x)=\sum_{i \le n}\begin{bmatrix}n\\i\end{bmatrix}x^i=x^{\overline{n}}$$

证明同第二类斯特林数,用递推式拆开即可

又因为 $x^{\overline{p}}=x\prod\limits_{i=1}^{p-1}(x+i) \equiv x(x^{p-1}-1) \equiv x^p-x \pmod p$

设 $n=ap+b$

$$x^{\overline{n}} \equiv (x^{\overline{p}})^a(x^{\overline{b}}) \equiv x^{\overline{b}}(x^p-x)^a \pmod p$$

$$(x^p-x)^a=x^a(x^{p-1}-1)^a=\sum_{i=0}(-1)^{a-i}\binom{a}{i}x^{i(p-1)+a}$$

$$\begin{bmatrix}n\\m\end{bmatrix}=[x^m]F_n(x) \equiv [x^m]x^{\overline{b}}(x^p-x)^a \pmod p$$

如果 $m < a$ ,则 $\begin{bmatrix}n\\m\end{bmatrix} \equiv 0 \pmod p$

否则设 $c(p-1)+d=m-a$ ,若 $d=0,b>0$ , $c \leftarrow c-1,d \leftarrow p-1$

$$\begin{bmatrix}n\\m\end{bmatrix}=(-1)^{a-c}\binom{a}{c}[x^d]x^{\overline{b}}$$

 

P.S. 当要求 $x^{\overline{p-1}}$ 时咋搞?此时次数是 $p-1$ 次,貌似用不了原根了

我会因式分解!

$$x^{\overline{p-1}} \equiv \frac{x^{\overline{p}}}{x-1} \equiv \frac{x(x^{p-1}-1)}{x-1} \equiv \sum_{i=1}^{p-1}x^i \pmod p$$

 

生成函数的组合意义


来探讨一下某个类似 $\text{exp}$ 的生成函数的组合意义(下面的 $F$ 是个 $\text{EGF}$):

$$n![x^n]e^{F(x)}=n![x^n]\sum_{k=0}\frac{F^k(x)}{k!}=n!\sum_{k=0}\frac{1}{k!}\prod_{\sum\limits_{i=1}^ka_i=n}\frac{f_{a_i}}{a_i!}$$

$$n![x^n]e^{F(x)}=\sum_{k=0}\frac{1}{k!}\sum_{\sum\limits_{i=1}^ka_i=n}\binom{n}{a_1,a_2,..,a_k}\prod f_{a_i}$$

所以 $n![x^n]e^{\hat{F}(x)}$ 的组合意义为将 $n$ 种不同元素划分为任意个无标号集合,每个集合作该种计数(该种计数一般要求只和集合大小有关,也就是 $f_i$ )的方案数

所以我们如果得到了对于一个集合的生成函数 $F(x)$ ,求划分以后方案数就等价于求 $n![x^n]e^{\hat{F}(x)}$ ,具体题目具体求解,注意子集 $\text{exp}$ 不需要管这么多,因为已经定下了选择的哪个集合

 

Distinct Multiples

题意就是给你一个长度为 $n$ 的序列 $D$ 和限制 $M$ ,要你求长度为 $n$ 的满足以下限制的 $A$:

$$\forall i\not=j,A_i \not= A_j$$

$$\forall i,D_i \mid A_i$$

先试图容斥掉恰好相等条件,但是枚举子集你发现怎么写 $(-1)^c$ 的 $c$ 都有问题,发现是因为这个 $c$ 不跟点数有关,把这个转变成连边,若 $A_i=A_j,i\not=j$ 则 $i,j$ 连边。相当于是求没有边的图的方案数,显然可以子集反演

记 $f_S$ 为钦定了 $S$ 中的边必选的方案数,但是 $S$ 集合太大,我们可以变为 $f_S$ 是钦定 $S$ 中的点都至少有一条边,也就可以变为枚举算出每个联通块的贡献

如果确定了一个联通块 $S$ ,那么它们 $A$ 的取值是好算的,主要是容斥系数
$\sum\limits_{T \sub E_S} (-1)^{|T|}$ 难顶,不过这个东西显然只跟 $|S|$ 有关,我们记 $h_i$ 为联通块大小为 $i$ 的容斥系数之和

显然有 $h_1=1$ ,当 $i \ge 2$ 时,如果 $n$ 在同一个连通块里连了两条边以上,那么可以找到编号最小两个与 $n$ 点连边的并把这两个点之间的边反转一下状态,就能进行抵消,同样,若连通块个数大于 $1$ 也能抵消,所以就相当于在 $1,2,...,n-1$ 这个连通块中选一个点连,故 $h_n=-(n-1)h_{n-1}$

每个连通块的算出来了,然后子集 $\text{exp}$ 即可

评测链接

 

概率密度函数与生成函数


这种东东感觉只在排列偏序上见到过,具体就是排列转化为随机 $[0,1]$ 变量,然后积分算概率密度函数

 这个类型最经典的就是新年的军队,概率密度函数的运用在这场题解里 $\text{EI}$ 已经写的很详细了

然而笔者自己并没有这个实力做出来,只能给几道比较在自己能力范围的题目

修行   题解

氪金手游   题解

 

欧拉积分


其实就是两个函数, \(\Gamma(s)\)\(\Beta(p,q)\)

\[\Gamma(s)=\int_{0}^{\infty}x^{s-1}e^{-x}\mathrm{d}x=(s-1)\Gamma(s-1) \quad (s>0) \]

所以当 \(s\in \mathbb{N}\) 时, \(\Gamma(s+1)=s!\)

\[\Beta(p,q)=\int_{0}^{1}x^{p-1}(1-x)^{q-1}\mathrm{d}x=\Beta(q,p)=\frac{\Gamma(p)\Gamma(q)}{\Gamma(p+q)} \quad (p>0,q>0) \]

所以当 \(p,q\in \mathbb{N}\) 时, \(\Beta(p+1,q+1)=\frac{p!q!}{(p+q+1)!}\)

 

Random Kth Max

题意就是 \(n\) 个变量,第 \(i\) 个在 \([L_i,R_i]\) 之间随机生成,问期望第 \(K\) 大是多少

我们假设 \(x\) 的概率密度函数(即 \(\text{pdf}\) )为 \(f(x)\) ,那么

\[P(a \le X \le b)=\int_{a}^{b} f(x) \mathrm{d}x \]

\[\int_{-\infty}^{\infty} f(x) \mathrm{d}x=1 \]

然后有累计分布函数(即 \(\text{CDF}\)\(F(x)=P(X \le x)= \int_{-\infty}^{x}f(x)\mathrm{d}x\) ,如果 \(X\)\([a,b]\) 中随机生成,则

\[\operatorname{E}[X]=\int_{a}^{b}xf(x) \mathrm{d} x=a+\int_{a}^{b}(1-F(x)) \mathrm{d} x \]

为啥?首先我们知道整数概率公式

\[\operatorname{E}[X]=\sum_{i=1}^{\infty}iP(X=i)=\sum_{i=1}^{\infty}i(P(X \ge i)-P(x \ge i+1))=\sum_{i=1}^{\infty}P(X \ge i) \]

又因为 \(f(x)=F'(x)\) (定义),故有

\[\operatorname{E}[X]=\int_{a}^{b}xF'(x) \mathrm{d} x \]

根据分部积分法 \(\int_a^b f(x)g'(x) \mathrm{d} x=f(x)g(x)|_a^b-\int_a^b f'(x)g(x) \mathrm{d} x\) ,故

\[\operatorname{E}[X]=\int_{a}^{b}xF'(x) \mathrm{d} x=xF(x)|_a^b-\int_{a}^{b}F(x) \mathrm{d} x=bF(b)-aF(a)-\int_{a}^{b}F(x) \mathrm{d} x \]

由于 \(X\)\([a,b]\) 中随机生成,故 \(F(a)=0,F(b)=1\) ,那么进一步的

\[\operatorname{E}[X]=b-\int_{a}^{b}F(x) \mathrm{d} x=a+(b-a)-\int_{a}^{b}F(x) \mathrm{d} x=a+\int_{a}^{b}(1-F(x)) \mathrm{d} x \]

其实前面那个式子也挺优美,但是为了和整数概率公式一致,我们还是用最后这个吧

我们来试试算 \(n\)\([0,1]\) 随机变量的第 \(m\) 小,我们令其为 \(X\) ,设 \(\overline{F}(x)=1-F(x)=P(X \ge x)\) (貌似叫 \(\text{CCDF}\) ),那么可以得到

\[\overline{F}(x)=\sum_{i=1}^m \binom{n}{i}x^i(1-x)^{n-i} \]

根据上面那个公式,有

\[\operatorname{E}[X]=\int_0^1 \overline{F}(x) \mathrm{d} x=\int_0^1 \Big[\sum_{i=1}^m \binom{n}{i}x^i(1-x)^{n-i}\Big] \mathrm{d} x=\sum_{i=1}^m \binom{n}{i}\int_0^1 x^i(1-x)^{n-i} \mathrm{d} x \]

积分的部分不就是 \(\Beta(i+1,n-i+1)\) ?所以

\[\operatorname{E}[X]=\sum_{i=1}^m \binom{n}{i}\int_0^1 x^i(1-x)^{n-i} \mathrm{d} x=\sum_{i=1}^m \frac{n!}{i!(n-i)!}\frac{i!(n-i)!}{(n+1)!}=\frac{m}{n+1} \]

终于能算全部在 \([0,1]\) 区间随机分布的第 \(m\) 小了(也就可以算第 \(m\) 大),在 \([L_i,R_i]\) 随机分布怎么算?由于 \(L_i,R_i \le 100\) ,我们直接枚举第 \(m\) 大在 \([x,x+1]\) 之间,跑一个 \(\text{DP}\) ,记 \(f_{i,j,k}\) 为前 \(i+j+k\) 个变量,有 \(i\) 个小于 \(x\) ,有 \(j\) 个在 \([x,x+1]\) ,有 \(k\) 个大于 \(x+1\) ,然后转移和计算答案都是简单的

当然,貌似可以用二元多项式做(可能推推式子就一元了),因为没这样做,所以复杂度不知道

所以有时连续的可以先考虑 \([x,x+1]\) 的答案怎么计算,把连续化为离散,时间复杂度 \(O(n^3|V|)\)

评测连接

 

「2020-2021 集训队作业」Permutation

\(\text{I}\color{red}{\text{tst}}\) 的题/se/bx

然而棋盘多项式的论文还没学!什么摆圣!只能先假装会棋盘多项式了

\(\exist\) 显然难,考虑容斥为 \(\forall\) ,显然有(写 \([1,n]\cap \mathbb{N}\) 显得式子太长了就不这样写了)

\[f_n=n!-\sum_{p \text{ is a permutation of length } n}[\forall i \in [1,n],p_i\not=i]+[\forall i \in [1,n],p_i\not=n-i+1]-[\forall i \in [1,n],p_i\not=i \land p_i\not=n-i+1] \]

可以发现前面两个都是错排数 \(D_n\) ,它的递推式众所周知,我们来思考如何求 \(g_n=\sum\limits_{p \text{ is a permutation of length } n}[\forall i \in [1,n],p_i\not=i \land p_i\not=n-i+1]\) ,仍然考虑容斥,令 \(h_{n,i}\) 为钦定有 \(i\) 个位置满足 \(p_i=i \lor p_i=n-i+1\) 条件的方案数,有

\[g_n=\sum_{i=0}^n (-1)^{i}h_{n,i}(n-i)! \]

\(h_i\) 怎么计算?考虑使用棋盘多项式,学习笔记在这里(哈哈,还在咕),可以发现这个棋盘的每一行 \(i\) 都顶多两列,且实际上这两列能取到的行就是 \(i,n-i+1\) ,这样就可以用分离定理,有 \(h_i\) 的生成函数为

\[H_n(x)=(2x^2+4x+1)^{\lfloor \frac{n}{2} \rfloor}(x+1)^{n \bmod 2} \]

故有

\[g_n=\sum_{i=0}^n (-1)^{i}(n-i)![x^i](2x^2+4x+1)^{\lfloor \frac{n}{2} \rfloor}(x+1)^{n \bmod 2} \]

先把 \((-1)^i\) 搞进去,也就是让 \(x\) 都变为 \(-x\) ,然后翻转一下系数,把 \((n-i)!\) 变为 \(i!\)

\[g_n=\sum_{i=0}^{n}i![x^i](x^2-4x+2)^{\lfloor \frac{n}{2} \rfloor}(x-1)^{n \bmod 2} \]

欧拉积分?欧拉积分!但不要着急,我们先给出另一种做法,也就是官方题解中的做法

\(E(F(x))=\sum_{i=0}^n i![x^i]F(x)\) ,故 \(g_n=E((x^2-4x+2)^{\lfloor \frac{n}{2} \rfloor}(x-1)^{n \bmod 2})\)

观察 \(E(F(x))\) 的性质,显然有 \(E(F(x)+G(x))=E(F(x))+E(G(x))\) ,然后思考 \(i!\) 与求导系数之间的相似性,可以发现 \(E(F(x))=E(F'(x))+[x^0]F(x)\) ,那么我们直接将原式子分奇偶算一下就可以得到递推式,相当的高妙

不过我们还是得回头来讲讲欧拉积分的做法,偶数显然简单一些,这里就只推奇数了:

\[\begin{align*} g_{2n+1}&=\sum_{i=0}^{\infty} i! [x^i](x^2-4x+2)^{n}(x-1) \\ &=\int_{0}^{\infty} (x^2-4x+2)^{n}(x-1) e^{-x} \mathrm{d} x \\ &=-\int_{0}^{\infty} (x^2-4x+2)^{n}(x-1) (-e^{-x}) \mathrm{d} x \\ &=-(x^2-4x+2)^{n}(x-1)e^{-x} |_0^{\infty}+\int_{0}^{\infty}\Big[(x^2-4x+2)^{n}(x-1)\Big]'e^{-x} \mathrm{d}x \\ &=-2^n+\int_{0}^{\infty}(x^2-4x+2)^{n}e^{-x} \mathrm{d}x+\int_{0}^{\infty}n(x^2-4x+2)^{n-1}(2x-4)(x-1)e^{-x} \mathrm{d}x \\ &=-2^n+g_{2n}+n\int_{0}^{\infty}(x^2-4x+2)^{n-1}2\Big[(x^2-4x+2)+(x-1)+1\Big]e^{-x} \mathrm{d}x \\ &=-2^n+(2n+1)g_{2n}+2n(g_{2n-2}+g_{2n-1}) \end{align*} \]

注意第三步到第四步是用的分部积分,貌似大部分用 \(\Gamma(s)\) 的都是分部积分然后寻找递推式,然后可以发现第六步有点像在凑?其实若 \(F(x)\) 更为简单一些可以直接套上多项式取模获得递推式

评测链接

 

先咕咕咕一下,马上更新~

 

\(\text{q-analog}\) 相关


可作为餐前甜点(如果有密码就是 EI is our red sun!

\(\text{q-analog}\) 的学习笔记点这

 

拉格朗日反演


拉格朗日隐函数定理

先来个拉格朗日隐函数定理( \(\text{Lagrange Implicit Function Theorem}\) ),更严谨的可以看看这里(话说换个形式就是拉格朗日反演?)

这个 \(\text{LIFT}\) 定理最主要的就是 \(f(x)=x \cdot g(f(x)) ([x^0]f(x)=0)\) ,有唯一解,且

\[[x^n]f(x)=\frac{1}{n}[y^{n-1}]g(y)^n \]

来求个那罗延数( \(\text{Narayana Numbers}\) ),记 \(N(n,k)\)\(n\) 对括号组成的括号序列有 \(k\) 对括号相邻的方案数,也等价于 \(n+1\) 个点无标号有序(儿子之间)有根树有 \(k\) 个叶子的方案数,还等价于 \(n\) 个点无标号有根二叉树的右儿子(根算一个右儿子)个数为 \(k\) 的方案数

令其生成函数为 \(G(z,t)=\sum N(n,k)z^{n+1}t^k\) ,我们考虑用其第二个组合意义进行转移,也就是枚举根的一堆子树,那么有

\[G(z,t)=zt+z\sum_{i=1}^{\infty}G(z,t)^i=zt+\frac{zG(z,t)}{1-G(z,t)} \]

根据 \(\text{LIFT}\) 定理,有

\[N(n,k)=[z^{n+1}][t^k]G(z,t)=[t^k]\frac{1}{n+1}[x^n](t+\frac{x}{1-x})^{n+1}=\frac{1}{n+1}\binom{n+1}{k}[x^n](\frac{x}{1-x})^{n+1-k}=\frac{1}{n+1}\binom{n+1}{k}\binom{n-1}{k-1} \]

\[N(n,k)=\frac{1}{n}\binom{n}{k}\binom{n}{k-1}=\frac{1}{k}\binom{n}{k}\binom{n-1}{k-1} \]

通过 \(\text{LIFT}\) 定理,我们来回顾一下学习递推时一个最经典的序列:斐波那契序列

在这里我们定义 \(f_0=0,f_1=f_2=1\) ,记其 \(\text{EGF}\)\(F(x)\) ,有

\[F(x)=x+xF(x)+x^2F(x)=x(1+(x+1)F(x)) \]

用一用我们刚学的定理!可得

\[f_n=[x^n]F(x)=\frac{1}{n}[y^{n-1}](1+(x+1)y)^n=\frac{1}{n}\binom{n}{n-1}(x+1)^{n-1}=(x+1)^{n+1} \]

很诡异?有 \(x\) 那就代回去!把系数写入 \(F(x)\) ,有

\[F(x)=\sum_{n=0}^{\infty}f_n x^n= \sum_{n=0}^{\infty}(x+1)^{n-1}x^n \]

我们再对这个式子求 \(n\) 次项系数,可以推出

\[f_n=[x^n]F(x)=[x^n]\sum_{i=0}^{\infty}(x+1)^{i-1}x^i=\sum_{i=0}^{n}\binom{i-1}{n-i}=\sum_{i=0}^n\binom{n-i-1}{i} \]

 

拉格朗日反演

前置知识和符号在这里

上面这篇讲到了 \(\text{LIFT}\) 定理对最原始版拉格朗日反演推导的用处(然而对进阶的版本可能就不太好用了),我们直接进化到最终版

拉格朗日反演

\(F(x) \in R[x]_{+}\)\(G(F(x))=H(x)\) ,则

\[[x^n]A(G(x))=n^{-1}[x^{-1}]A(H(x))'F^{-n}(x) \]

我们已经扩了域,将形式幂级数环拓展到了形式洛朗级数环

但是注意到对于任意 \(F(x) \in R((x))\)\([x^{-1}]F'(x)=0\) ,这是显然的,所以我们有引理

\(\text{Lemma.}\)

对于 \(F(x) \in R[x]_{+}\) 有,

\[[x^{-1}]F'(x)F^{k}(x)=[k=-1] \]

证明比较简单, \(k \not= -1\) 的时候有 \(F'(x)F^{k}(x)=\Big(\frac{F^{k+1}(x)}{k+1}\Big)\) ,而 \(k=-1\) 的时候即为 \(\frac{F'(x)}{F(x)}\) ,又因为 \(F(x) \in R[x]_{+}\) ,即 \(F(0)=0\) ,则有 \([x^{-1}]\frac{F'(x)}{F(x)}=\frac{[x^0]F'(x)}{[x^1]F(x)}=1\)

有了这个就可以证明了,懒得写了,建议参考 \(\text{EI}\)证明,把 \(G^k(F(x))\) 替换成 \(A(G(F(X)))\) 也是一样的

 

生成函数的各式递推方法


其一

如果已知 \(m\) 次生成函数 \(G(x)\) ,要计算 \(F(x)=G(x)^k\) 的前 \(n\) 次,可以 \(O(nm)\) 的递推

我们对 \(F(x)=G(x)^k\) 求导可得 \(F'(x)=kG(x)^{k-1}G'(x)\) ,两边同乘 \(G(x)\) ,有

\[F'(x)G(x)=kF(x)G'(x) \]

同时取两边 \(n\) 次项系数可以得到递推式

来点例子,不过卡特兰数比较 \(\text{low}\) ,我们直接来个施罗德数!它的递推式是

\[f_0=1,f_i=f_{i-1}+\sum_{j=0}^{i-1}f_{j}f_{i-1-j} \quad (i>0) \]

这个数可以是什么呢?贴一贴鸡老师写的博客,其生成函数显然有

\[F(x)=1+xF(x)+xF(x)^2=\frac{1-x-\sqrt{x^2-6x+1}}{2x} \]

为什么求根公式为啥是取负号可以参考卡特兰数

显然只要会求 \(\sqrt{x^2-6x+1}\) 就可以了,所以我们设 \(G(x)=x^2-6x+1\) ,要求 \(F(x)=G(x)^{\frac{1}{2}}\) ,注意此 \(F(x)\) 非彼 \(F(x)\)

那么有 \(F'(x)G(x)=\frac{1}{2}F(x)G'(x)\) ,取一下 \(n\) 次项系数,可以有 \((n-1)f_{n-1}-6nf_n+(n+1)f_{n+1}=f_{n-1}-3f_n\) ,整理一下有

\[f_0=1,f_1=-3,f_{n+1}=\frac{(6n-3)f_{n}-(n-2)f_{n-1}}{n+1} \quad (n>0) \]

代回去搞搞即可

 


其二

递推式子是 \(f_i=\sum_{i=0}i![x^i]G(x)\) 的,可以欧拉积分推导,例子已经在欧拉积分部分写了,这里不多赘述

 


其三

拉格朗日反演,不多赘述

 


其四

式子是 \(\text{exp}\) 之类的可以考虑求偏导

更简单的排列计数

注意到一个置换环的 \(\text{EGF}\)\(G(x)=\sum\limits_{i=1}^{\infty} \frac{x^i}{i}\)

所以除掉自环后组成的排列就是 \(e^{G(x)-x}\) ,然而这不能够玩多项式,所以我们套路地转化一下,下面 \(c\) 是一个排列的置换环的个数

\[\sum_{i=0}^{K} a_i c^i=\sum_{i=0}^{K} a_i \sum_j {i \brace j}j!\binom{s}{j}=\sum_{i=0}^K \binom{s}{i} \sum_{j=i}^{K} a_j {j \brace i} \]

所以相当于对于 \(i \in [0,K] \cap \mathbb{N}\) ,求出 \(f_{n,i}=\sum \binom{s}{i}\) ,那么显然我们在刚才那个改写一下式子,可以得到

\[f_{n,i}=[x^n y^i]e^{(G(x)-x)(y+1)} \]

组合意义理解一下,就是一个置换环可贡献可不贡献

然而接着怎么做?

我会求偏导!令 \(F=e^{(G(x)-x)(y+1)}\) ,对 \(x\) 求偏导,可得

\[\frac{\partial F}{\partial x}=(G(x)-x)' \times (y+1) F=\frac{x}{1-x}(y+1)F \]

两边取 \(x^{n-1}y^m\) 项系数,有

\[f_{n,m} \times n=\sum_{i=1}^{n} f_{n-i,m}+f_{n-i,m-1}\ \]

直接前缀和优化即可

 

集合幂级数


写这个的原因一是 \(\text{APIO2022}\) ,其次是联考考了个强推 \(\text{FWT}\) (就是卡农),某个人不敢推,然而式子其实极其简单,写下此节,铭记于心

 

 

咕咕咕~

posted @ 2022-06-04 22:25  一叶知秋‘  阅读(144)  评论(0)    收藏  举报