母函数
母函数

母函数(生成函数)(发生函数)(发生函数)英文:generating function我们已知道了解决组合的计数问题的几种方法,从基本的加法原理和乘法原理开始,导出了排列与组合的各种公式,证明了容斥原理,并且已用它来解决某些计数问题。
这里将论证一种方法是属于Eular 的生成函数法。
(对工程师来说,数列的母函数通称为z-变换)§1 母函数利用生成函数可以说是研究计数问题的一个最主要的一般方法:其基本思想很简单:为了获得一个数列{} 210,,0:a a a k a k=≥的知识,我们用一个母函数+++=∑=≥22100)(x a x a a xa x g kk k这里x k 是指数函数来整体地表示这个数列,称g (x )是数列{}0:kx a k 的普通母函数,这样原数列就转记为成函数。
假如能求得这个函数,则不仅原则上已确定了原数列,还可以通过对函数的运算和分析得到这个数列的许多性质。
这里如果把x k 提成)(x k μ亦称普通母函数指数函数通常选来使得没有两个不同的序列令产生同一个母函数,故序列的母函数仅只是序列的另一种表示。
如1,cos x ,cos2x ,…为指数函数,序列{}2,,1ωω的母函数为+++++=rx x x x F rcos 2cos cos1)(2ωωω另一方面,用,1,1+x ,1-x ,1+x 2,1-x 2,…,1+x r ,1-x r …作为指数函数,序列(3,2,6,0,0)的普通母函数是3+2(1+x )+6(1-x )=11-4x ,而序列(1,3,7,6,0)和(1,2,6,1,1)会产生同一母函数即,1+3(1+x )+7(1-x )=11-4x ,xx x x x 411)1()1()1(6)1(2122-=-+++-+++故函数 ,1,1,1,1,122x x x x -+-+不应做为指数函数,)(x r μ的最近常用的是r x ,以下我们仅讨论这种情况的指数函数。
母函数(生成函数)

母函数(⽣成函数)介绍母函数是组合数学中相当重要的⼀个知识点,可以⽤来解决⼀些排列组合问题,还有所有的常系数线性齐次递推问题。
如果系数不是常数,需要根据具体情况进⾏处理。
具体的内容可以看组合数学相关书籍或者,由于⼤佬总是想当然地把别⼈当成⼤佬,⼀些内容对(像我这种)蒟蒻来说不是很友好,在这⾥讲⼀下母函数的基础。
(研究母函数时,钦定|x|<1),这样,由等⽐数列求和公式有:11−x=∑∞i=0x i=1+x+ (x)11−kx=∑∞i=0k i x i=1+kx+...+k∞x∞1.普通型母函数。
假设有⼀个数列a,那么它的母函数其实就是⼀个关于x的多项式,x n的系数为a n,对于已知通项的数列,其母函数可以直接写出来。
⽽对于未知的数列,主要分为两类:递推型和组合型。
递推型就是利⽤错位相消,举个栗⼦:a n=3a n−1+10a n−2,a0=1,a1=2移项,得a n−3a n−1−10a n−2=0,设a n的母函数为G(x)G(x)=a0+a1x+a2x2+a3x3...−3xG(x)=−3a0x+(−3)a1x2+(−3)a2x3...−10x2G(x)=−10a0x2+(−10)a1x3三⾏相加,可以发现等式右侧除了第⼀⾏的第1,2项和第⼆⾏的第1项外全消掉了。
所以我们可以得到(1−3x−10x2)G(x)=a0+a1x−3a0x=1−x,即G(x)=1−x1−3x−10x2,⽣成函数就求出来了,那如果我们还要求an的通项呢?对于这种东西,我们可以把他化成k1x−A+k2x−B这种形式,其中A和B由分母的因式分解唯⼀确定,然后k1,k2可由待定系数法解得。
然后对于kx−A,总可以化成k′∗11−Nx,就是k′∑∞i=0N i x i,找出x k的系数就是a n,如果母函数拆开成多个该类分式的话各部分相加就好。
具体计算就不算了。
PS:⼀部分⾮齐次线性递推其实也可以这样解,⽐如a n−3a n−1−10a n−2=f(n),按照上述⽅法错项后会剩下⼀个等⽐数列和前⼏项余项。
母函数与指数型母函数

比较等式两端的常数项,可以得到恒等式:
C(m n, m) C (n, 0)C (m, 0) C (n,1)C (m,1) C(n, m)C(m, m).
又如在等式 (1 x)n C(n,0) C(n,1)x C(n, n)xn
注意到,出现1,5有两种选法,出现2,4也有两 种选法,而出现3,3只有一种选法,按加法法则, 共有2+2+1=5种不同选法。
或者,第一个骰子除了6以外都可选,有5种选法, 一旦第一个选定,第二个骰子就只有一种可能的选 法,按乘法法则有5×1=5种。
但碰到用三个或四个骰子掷出n点,上述两方法就 不胜其烦了。
a1 a3 a5 a7 0, a0 1, a2 C(8, 2) 28,
a4 C(8, 4) 70, a6 C(8, 6) 28, a8 1. 因此序列a1,a2,…,a8对应的母函数为:
A( x) 1 28x2 70x4 28x6 x8 .
类似可得女同志的允许组合数对应的母函数为
1: b0 a0 x: b1 a0 a1 x2: b2 a0 a1 a2
__+_)___x_k:_b_k _a_0 __a1__a_2 ____ak________
B( x) a0 /(1 x) a1 x /(1 x) a2 x2 /(1 x)
[a0 a1 x a2 x2 ] /(1 x) A( x) /(1 x).
中令x=1 可得 C(n, 0) C(n,1) C(n, 2) C(n, n) 2n.
两端对x求导可得:
n(1 x)n1 C(n,1) 2C(n,2)x nC(n,n)xn1,
母函数

G ( x ) ( x )( x )( x )( x i ) x 8 1 4 0 x18 x 28
i i i i 1 i 1 i2 i 4
5
6
7
10
而x 18的 系 数 140就 是 所 求 的分配方案数。
15
例 从 n双 互 相 不 同 的 鞋 取 中 出 r只 ( r n) , 要 求 其 中 没 有 任 何 两 只成 是对 的 , 问 共 有 多 少不 种同 的 取法?
于是本题相当于 分 析 : 令 S {5 e1 ,6 e 2 ,7 e 3 ,10 e 4 }, 多 重 集 S的 18可 重 组 合 问 题 。 其中e 1至 少 出 现 1次 , 最 多 出 现 5次 ;2e 至 少 出 现 1次 , 最 多 现 出 6次 ; e 3至 少 出 现 2次 , 最 多 出 现 7次 ;4e 至 少 出 现 4次 , 最 多 现 出 10次 。 由 推 论 6, 相 应 的 母 函 数为
2 4 2r
1 ) n ( 1 x 2 )
n
1 2 n 证 G(x) ( 1 x ) 2 n ( 1 x )
n n k 1 2k k 2k ( 1) k x k x k 0 k 0
8
如果多重集 S { n1 e 1, n 2 e 2 ,, n m e m }, 则S的 r可 重 组 合 数 相 当 于 方 程 x 1 x 2 x n r x 1 n1, x 2 n 2 ,, x m n m 的 非负 整 数解 的 个 数相 。应的母函数为 G ( x ) ( 1 x x 2 x n1 ) ( 1 x x 2 x n2 ) ( 1 x x 2 x nm )
母函数详解——精选推荐

母函数详解在数学中,某个序列的母函数(Generating function,⼜称⽣成函数)是⼀种形式幂级数,其每⼀项的系数可以提供关于这个序列的信息。
使⽤母函数解决问题的⽅法称为母函数⽅法。
母函数———把组合问题的加法法则和幂级数的的乘幂的相加对应起来我们从经典的砝码的例⼦讲起题⽬:有1g 2g 3g 4g的砝码各⼀枚,能称出多少种重量?每种重量的可能组合砝码是什么穷举的话,很容易得出结果,单数时间复杂的度为n的四次⽅,较⼤,不能采取所以,我么可以采⽤⼀个类似离散数学的逻辑式⼦表⽰前两种砝码组合产⽣的情况这⾥ ||代表或 &&代表与(使⽤1g||不使⽤1g)&&(使⽤2g||不适⽤2g)=使⽤1g&&使⽤2g||不使⽤1g&&使⽤2g||使⽤1g&&不使⽤2g||不使⽤1g&&不使⽤2g思考:⼤家可以发现这个表达式和⼀种表达式很像,没错,如果把“||”看成加法,“&&”看成乘法,和多项式的乘法⼀模⼀样。
那么我们直觉的想到,有没有可能⽤多项式乘法来表⽰组合的情况呢?我们再来看题⽬,题⽬需要的是⼏种砝码组合后的重量,是⼀个加法关系,但是在上式中“&&”是⼀种类似于乘法的运算关系,这怎么办呢?有没有什么这样⼀种运算关系,以乘法的形式运算,但是结果表现出类似于加法的关系呢?正好有⼀个,那就是幂运算。
Xm 乘上Xn结果是Xm+n,他完美的符合了我们的要求。
那么以次数表⽰砝码的质量,就可以以多项式的形式表⽰砝码组合的所有⽅案。
还是以前俩个砝码为例说明。
表⽰1g砝码的两种多项式就是(x^0+x^1),表⽰2g砝码的两种多项式就是(x^0+x^2),x的0次⽅表⽰没有使⽤该砝码,当然x的0次⽅等于1,所以写成1也是对的。
注意,砝码的重量是⽤次数表⽰的,⽽不是⽤下标表⽰的 (x^0+x^1)*(x^0+x^2) =x^0*x^0+x^1*x^1+x^0*x^1+x^1*x^2 =x^0+x^1+x^2+x^3 结果很显然,有四个⽅案;0g 1g 2g 3g 再试试四个砝码加⼀起的结果 ⼀个1g 2g 3g 4g (x^0+x^1)* (x^0+x^2) * (x^0+x^3)* (x^0+x^4) =x^0 + x^1 + x^2 + 2x^3 + 2x^4 + 2x^5 + 2x^6 + 2x^7 + x^8+ x^9 + x^10 结果就是0g 1g 2g 2个3g 2个4g 2个5g 2个6g 2个7g ⼀个8g ⼀个9g ⼀个10g ⾄此也就得出了答案。
【工程数学课件】4.3 母函数

或取两次,L ,或取r次,L ,是用如下形式表示:
1 x x2 L xr +L
2!
r!
例5 证明从n个不同的物体中允许重复地选取r个物体 的排列数为nr。
解:设ar为所求的排列数,则序列(a0 ,a1,a2,L ,ar ,L )的 指数母函数为:
fe(x) 1
x
x2 2!
L
xr r!
每个物体出现偶数次的方式数。 解:设a2r为所求的方式数,则序列(a0 ,a1,L ,ar ,L )的普 通母函数为:
f
(x)
(1
x2
x4
L
)n
1
1 x2
n
r 0
n
r r
1
x2r
故有:a2r
n
r r
1
六、指数母函数在排列中的应用
与组合不同的是,某个物体在排列中不取,或取一次,
n n
x
n
1
xn
二、指数母函数
定义 fe ( x
)给 定 a0 一 a个1 1无 x! 穷a序2 x2列2! (aL0,
a1 ,L an
,xann n!
,L ),称函数
L
ai i0
xi i!
为序列(a0 ,a1,L ,an ,L )的指数母函数。
例5 容易得到序列(p(n,0), p(n,1),L , p(n, n))的指数母
x4)(142x4)L4(14 3x)
n
(1
x)n
n r 0
n
r
xr
x
r
的系数
n r
为从n个不同的物体选取r个的方法数.
(1 x x2L ) 表示某一物体可以不选,或选一次, 或选二次,…
组合数学(第二版)母函数及其应用

考虑座位号),其中,甲、乙两 班最少1张,甲班最多5张,乙班最
多6张;丙班最少2张,最多7张;丁班最少4张,最 多10张.可有多
少种不同的分配方案?
母函数及其应用
母函数及其应用
【例 2.1.5】 从n 双互相不同的鞋中取出r 只(r≤n),要求
其中没有任何两只是成对 的,共有多少种不同的取法?
母函数及其应用
(1+x)n .
【例 2.1.2】 无限数列{1,1,…,1,…}的普母函数是
母函数及其应用
说明
(1)an 的非零值可以为有限个或无限个;
(2)数列{an}与母函数一一对应,即给定数列便得知它的
母函数;反之,求得母函数则数列也随之而定;
(3)这里将母函数只看作一个形式函数,目的是利用其有
关运算性质完成计数问题, 故不考虑“收敛问题”,即始终认
红红、黄黄、蓝蓝、红黄、黄红、红蓝、蓝红、黄蓝、 蓝
黄.其它情形依此类推.
母函数及其应用
这里需要说明的是:
(1)在例2.1.3中,利用普母函数可以将组合的每一种情况
都枚举出来,但是对排列问 题,指母函数却做不到,只能对排列
进行分类枚举.正如例2.3.1这样,项ryb 的系数6说 明红、蓝、
黄球各取一个时,有6种排列方案,但每一种方案具体是什么,
(每个数字可重复出现), 要求其中3,7出现的次数为偶数,1,5,9
出现的次数不加限制.
母函数及其应用
【例 2.3.4】 把上例的条件改为要求1、3、7出现的次数
一样多,5和9出现的次数不 加限制.求这样的n 位数的个数.
解 设满足条件的数有bn 个,与例2.1.6的分配问题类似,即
将n 个不同的球放入标号 为1、3、5、7、9的5个盒子,其中
母函数种类表

母函数种类表在数学中,某个序列 的母函数(又称生成函数)是一种形式幂级数,其每一项的系数可以提供关于这个序列的信息。
使用母函数解决问题的方法称为母函数方法。
母函数可分为很多种,包括普通母函数、指数母函数、L 级数、贝尔级数和狄利克雷级数。
对每个序列都可以写出以上每个类型一个母函数。
构造母函数的目的一般是为了解决某个特定问题,因此选用何种母函数视乎序列本身的特性和问题类型。
母函数表示一般使用解析形式,即写成关于某个形式变量x 的形式幂级数。
对幂级数的收敛半径中的某一点,可以求母函数在这一点的级数和。
但无论如何,由于母函数是形式幂级数的一种,其级数和不一定对每个x 的值都存在。
母函数方法不仅在概率论的计算中有重要地位,而且已成为组合数学中一种重要方法。
此外,母函数在有限差分计算、特殊函数论等数学领域中都有着广泛的应用。
注意母函数本身并不是一个从某个定义域射到某个值域的函数,名字中的“函数”只是出于历史原因而保留。
母函数就是一列用来展示一串数字的挂衣架。
生成函数即母函数,是组合数学中尤其是计数方面的一个重要理论和工具。
生成函数有普通型生成函数和指数型生成函数两种,其中普通型用的比较多。
形式上说,普通型生成函数用于解决多重集的组合问题,而指数型母函数用于解决多重集的排列问题。
“投掷n 粒骰子时,加起来点数总和等于m 可能方式数目可能是展开式中项系数。
1. 普通数母普通母函数就是最常见母函数。
一般来说,序列的母函数是:如果 是某个离散随机变量的概率质量函数,那么它的母函数被称为一个概率母函数。
多重下标的序列也可以有母函数。
例如,序列母函数是。
2. 矩量母函数(母函数)令X 为具有概率密度函数f(x)随机变量,如果X 函数exp (tX )的期望值存在(-h^2<t<h^2),则称exp(tX)的期望值为X 的矩母函数,记作MX(t)用于描述随机变量的分布状况,其K 次求导,得M(0)的k 次方,也即Y 的K 次方的分布状况,概率理论和统计学上,在其期望值存在时,随机变量X 的矩量母函数为松数母序列的泊松母函数是:4. 数母数(母函数)序列的指数母函数是:尔(卡母函数)关于算术函数 :和 的贝尔级数是:6.级数 (母函数)序列的L 级数是:注意这里的下标 n 从1 而不是0 开始。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2013-9-9
6
For example:
(1+x)n是序列C(n,0),C(n,1),...,C(n,n) 的母函数。 如若已知序列a0,a1,a2,…则对应 的母函数G(x)便可根据定义给出。 反之,如若已经求得序列的母函数G(x), 则该序列也随之确定。 序列a0,a1,a2,…可记为{an} 。
2013-9-9 10
例2:求用1分、2分、3分的邮票贴 出不同数值的方案数——
因邮票允许重复,故母函数为:
以展开后的x4为例,其系数为4,即4拆 分成1、2、3之和的拆分数为4; 即 :4=1+1+1+1=1+1+2=1+3=2+2
2013-9-9
11
概念:整数拆分
所谓整数拆分即把整数分解成若干整 数的和(相当于把n个无区别的球放 到n个无标志的盒子,盒子允许空, 也允许放多于一个球)。
ACM程序设计
第八讲
母函数及其应用
(Generation function)
2013-9-9
2
从递推关系说起
2013-9-9
3
研究以下多项式乘法:
(8-1)
可以看出: x2项的系数a1a2+a1a3+...+an-1an中所有的项包括n个元 素a1,a2, …an中取两个组合的全体; 同理:x3项系数包含了从n个元素a1,a2, …an中取3 个元素组合的全体; 以此类推。
2013-9-9
9
几种砝码的组合可以称重的情况,可 以用以上几个函数的乘积表示:
(1+x)(1+x2)(1+x3)(1+x4) =(1+x+x2+x3)(1+x3+x4+x7) =1+x+x2+2x3+2x4+2x5+2x6+2x7+x8+x9+x10
从上面的函数知道:可称出从1克到10克,系数便 是方案数。 例如右端有2x5 项,即称出5克的方案有2: 5=3+2=4+1;同样,6=1+2+3=4+2;10=1+2+3+4。 故称出6克的方案有2,称出10克的方案有1
如何编写程序 实现母函数的应用呢?
关键:对多项式展开
2013-9-9
14
以整数拆分为例:
观察以下的母函数:
…
首先思考:如果让你手工计算,你是怎样处理的? 实际编程:让计算机按照自己的思路计算即可~
2013-9-9
15
// Author by lwg #include <iostream> using namespace std; const int lmax=10000; int c1[lmax+1],c2[lmax+1]; int main() { int n,i,j,k; while (cin>>n) {for (i=0;i<=n;i++) {c1[i]=0; c2[i]=0; } for (i=0;i<=n;i++) c1[i]=1; for (i=2;i<=n;i++) { for (j=0;j<=n;j++) for (k=0;k+j<=n;k+=i) { c2[j+k]+=c1[j]; } for (j=0;j<=n;j++) { c1[j]=c2[j]; c2[j]=0; } } cout<<c1[n]<<endl; } return 0; }
主打例题: HDOJ_1398 Square Coins
Sample Input 2 10 30 0 Sample Output 1 4 27
2013-9-9
17
附:相关作业(hdoj):
2008《ACM Programming》Exercise(9)_母函数
1028、1709、 1085、1171、 1398、2069、 2152 其它相关题目 (比如求邮票、 硬币之类的组 合数、整数的 不同拆分数等)
2013-9-9
1,2,3,Go! 一定要—— 练习……
18
Welcome to HDOJ
Thank You ~
2013-9-9 19
2013-9-9 7
实 例 分 析
2013-9-9
8
例1:若有1克、2克、3克、4克的砝码各一 枚, 能称出哪几种重量?各有几种可能方案?
如何解决这个问题呢?考虑构造母函数。 如果用x的指数表示称出的重量,则: 1个1克的砝码可以用函数1+x表示, 1个2克的砝码可以用函数1+x2表示, 1个3克的砝码可以用函数1+x3表示, 1个4克的砝码可以用函数1+x4表示,
整数拆分成若干整数的和,办法不一, 不同拆分法的总数叫做拆分数。
2013-9-9
12
练习(:若有1克砝码3枚、2克砝码4枚、 4克砝码2枚,问能称出哪几种重量? 各有几种方案? 例4: 整数n拆分成1,2,3,…,m 的和,求其母函数。
2013-9-9
13
核心问题——
2013-9-9 4
特例:
若令a1=a2= …=an=1,在(8-1)式中 a1a2+a1a3+...+an-1an项系数中每一个组合有 1个贡献,其他各项以此类推。故有:
(8-2)
2013-9-9
5
母函数定义:
对于序列a0,a1,a2,…构造一函数:
称函数G(x)是序列a0,a1,a2,…的 母函数