ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

生成函数初探

2019-06-11 21:05:02  阅读:251  来源: 互联网

标签:... +... frac 函数 生成 初探 物品


生成函数在计算方案数以及计算递推公式时都有很大的作用,本文对生成函数的知识做一个初步的介绍(主要是博主自己不会)

一.基本定义:

给出序列{$a_{n}$}={$a_{0},a_{1},a_{2}...a_{n}$},构造一个函数(或者多项式)$F(x)=a_{0}+a_{1}x+a_{2}x^{2}+...+a_{n}x^{n}$,则这个函数称作这个序列的生成函数(也叫母函数)

例:序列{$1,1,1....$}的生成函数是$F(x)=1+x+x^{2}+...$

可以看到,对于一个无穷数列,其生成函数自然会有无穷项

但是我们在解决问题时显然不可能讨论一个有无穷项的函数,而且这种函数的运算是极其困难的,因此我们考虑对这种函数进行化简:

(在化简这里有两种说法,这两种说法都能得出最后的结果,因此对于我这种蒟蒻暂且认为这二者等价,如果有大佬发现问题请及时讲解,谢谢!)

①.来自大部分资料的观点:

对于一个函数$F(x)=1+x+x^{2}+...$,可以发现这是一个等比数列求和的形式,由于在生成函数中真正体现数列性质的是每一项前的系数,而自变量本身的取值则意义不大,大部分时候我们不需要也不应该对这个自变量进行赋值,因此我们不妨给定一个定义域$x\in (0,1)$,这样基于无穷递缩等比数列求和公式($\sum_{i=0}^{∞}q^{i}=\frac{1}{1-q}(q\in (0,1)$)立刻可以得出该函数的一个变形:$F(x)=1+x+x^{2}+...=\frac{1}{1-x}$

②.来自一个ppt的观点:

 对于一个多项式,给出记法$F(x)mod x^{n}$表示$F(x)$在只保留次数低于$n$的项之后剩余的部分

那么仍然套用等比数列求和公式(虽然不是递缩的不一定收敛但保证$x!=1$公式还是可以用的嘛)

可以写出:$F(x)=\frac{1-x^{n}}{1-x}$

当$n->∞$时,一定有:$\frac{1-x^{n}}{1-x} mod x^{n}=\frac{1}{1-x}$

因此$F(x)=1+x+x^{2}+...=\frac{1}{1-x}$

(这两种观点我个人认为都是在$n->∞$时令$x^{n}=0$基于等比数列求和给出的,因此最后导出的结果一致,至于中间理解...见仁见智吧,我个人更喜欢第一种理解方式)

 无论如何,我们已经做出第一个生成函数了

可是...这玩意有啥用?

问题:

设物品$A$共有$n$种价格,每种价格$i$有$a_{i}$个物品

设物品$B$共有$m$种价格,每种价格$i$有$b_{i}$个物品

求:已知总花费$w$,在$A$,$B$两种物品中各购买一件物品,问总方案数?

(sb水题)

设物品$A$选用的价格为$i$,则与之对应的物品个数即为$a_{i}$,那么物品$B$选用的价格即为$w-i$,与之对应的物品个数为$b_{i}$,因此这一种的贡献即为$a_{i}b_{w-i}$

因此总贡献即为$\sum_{i=0}^{w}a_{i}b_{w-i}$

 (我会FFT,NTT!!!)

于是目测这个问题已经解决了

(好像没用上生成函数嘛)

但是,如果我们换个角度思考,对序列{$a_{n}$},{$b_{m}$}分别构造生成函数$F(x)=\sum_{i=0}^{w}a_{i}x^{I}$,$G(x)=\sum_{i=0}^{w}b_{i}x^{i}$,那么上面的答案不就是$F(x)$与$G(x)$做卷积后$x^{n}$这一项前面的系数嘛!

(我不用生成函数也能看出来!)

如果我们有200个序列有各自的要求呢?

emmmmm.....

好像问题有点大...

但是,如果我们用生成函数,无论有多少个序列,最后也都是把这一坨东西乘起来就行了嘛

好像问题不大了...

可是...如果我们给出的数列有无穷项呢?

总不能跑无穷的FFT吧...

问题好像又出来了...

但是,如果仔细想想,怎么会让你做一个又没有递推(通项)又无穷的数列嘛!

这不是难为人吗

因此,如果一个数列有递推或者通项,那么生成函数可以借助上面的形式去化简啊

可是...我们最后要的是生成函数中某一项的系数,都变成这种诡异的分式怎么找最后的答案嘛!

不要忘了,上面我们做的都是等式,等式左右两侧可以互换的啊!

因此如果我们最后能求出一个分式的结果,那我们就能反向导出一个多项式!

因此我们的核心问题就在于怎么快速双向推导

我们有前辈的经验!

两个常见的模型:

$F(x)=1+x^{a}+x^{2a}+...=\frac{1}{1-x^{a}}$

在有限项下的特殊情况:

$F(x)=1+x^{a}+x^{2a}+...+x^{na}=\frac{1-x^{(n+1)a}}{1-x^{a}}$

(注意!无限项与有限项是有本质区别的,因此有限项不应该套成无限项的公式)

另一个模型:

$F(x)=\sum_{i=0}^{∞}C_{i+k-1}^{k-1}x^{i}=\frac{1}{(1-x)^{k}}$

(以上内容不加证明直接给出)

下面给出一道例题:

luogu 2000

题解看这里

当然了,生成函数还有别的用处,比如用来求个通项之类的,最典型的例子就是斐波那契数列通项的计算,通常用的是特征根法,但是生成函数是一个适用范围更广的方法

这里留坑

标签:...,+...,frac,函数,生成,初探,物品
来源: https://www.cnblogs.com/zhangleo/p/11005422.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有