专题总结:生成函数

本文介绍了生成函数的基础概念,包括普通生成函数(OGF)和指数生成函数(EGF),并探讨了它们的应用场景及相互转换的方法。此外,还列举了一些重要的OGF封闭形式和泰勒展开式,并给出了通过递推式推导生成函数的具体步骤。

正题

      因为前段时间做生成函数题做得比较烦,题解也没写几篇,所以这里做的总结不能很具体,只能总结性概括.

      首先就是OGF和EGF,名字分别叫做普通生成函数,指数生成函数.

      前者一般用来解决不带标号的集合组合问题,后者一般用来解决带标号的集合组合问题.

      前后者也可以通过乘上i!来进行转化.

      多项式板子多项式总结

      普通生成函数

      对于一个数列a,我们定义它的普通生成函数为A(x)=\sum_{i=0}a_ix^i

      两个普通生成函数的乘法等于对应系数的卷积.

      通常用来处理不带标号的问题,比如说上楼梯,每次可以上1到3层,那么它的生成函数就是\small F(x)=x+x^2+x^3

      如果要求解上n层的方案数,那么答案就等于[x^n](F(x)+F^2(x)+...+F^n(x)+...)

      相信差不多懂了大概是来干嘛的.

      一些很重要的OGF的封闭形式:

      \\ \frac{1}{1-x}=\sum_{i=0}x^i \\ \frac{1}{(1-x)^k}=\sum_{i=0}C_{i+k-1}^{k-1}x^i \\ \frac{1}{1-x^k}=\sum_{i=0}x^{ik} \\ (1+x)^m=\sum_{i=0} C_m^i x^i

      还要会根据递推式来推导对应OGF的生成函数:

      例如斐波那契数列(f_0=0,f_1=1):

      \\f_i=f_{i-1}+f_{i-2}(i>1) \\\sum_{i=2} f_i =\sum_{i=2} f_{i-1}+\sum_{i=2}f_{i-2} \\\sum_{i=2}f_ix^i=\sum_{i=2}f_{i-1}x^{i-1}x+\sum_{i=2}f_{i-2}x^{i-2}x^2 \\F(x)-x=xF(x)+x^2F(x) \\F(x)=\frac{x}{1-x-x^2}

      还有常见的取ln后的多项式:

      \\\ln(1-x^V)=-\sum_{i=1}\frac{x^{Vi}}{i} \\\ln(1+x^V)=\sum_{i=1}\frac{x^{Vi}}{i}

      会了这些那么你就差不多会了OGF剩下的就是做题.

      指数生成函数

      对一个序列a构造指数生成函数,有A(x)=\sum_{i=0}a_i\frac{x^i}{i!}

      指数生成函数的乘法等于对应系数的多项式的组合数卷积.

      一些常见的泰勒展开式:      

      \\e^x=\sum_{i=0}\frac{x^i}{i!} \\sin(x)=\sum_{i=0}(-1)^i\frac{x^{2i+1}}{(2i+1)!} \\cos(x)=\sum_{i=0}(-1)^i\frac{x^{2i}}{(2i)!} \\\frac{e^x+e^{-x}}{2}=\sum_{i=0}\frac{x^{2i}}{(2i)!} \\\frac{\sum_{i=0}^{n-1}e^{\omega_n^ix}}{n}=\sum_{i=0}\frac{x^{ni}}{(ni)!}\\e^{ix}=cos(x)+isin(x)

      十分有用,记住就行,知道这个以后就可以去做题了.

      有时候生成函数还会结合递推式来快速.

      比如说F(x)=\sqrt[k]{G(x)},已知G(x),且项数分别为n,m.

      那么F(x)=G(x)^{\frac{1}{k}}

      有F'(x)G(x)=\frac{F(x)G'(x)}{k}

      这个式子显然可以暴力展开,那么我们就可以用O(nm)的时间求出F的前n项系数了.

      广义二项式定理

      (a+b)^m=\sum_{i=0}C_m^i a^i b^{m-i}

      C_{n-\frac{1}{2}}^n=\frac{C_{2n}^n}{4^n}=(-1)^nC_{-\frac{1}{2}}^{n}

      用这个式子可以转化成(1-4x)^{\frac{1}{2}},然后就可以用上面说的快速求前n项系数了.

      

       

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值