【组合数学】生成函数

1.形式幂级数

生成函数是解决计数问题的一种有效方法,它的中心思想是:对于一个有限或无限数列 a 0 , a 1 , a 2 , . . . {a_0,a_1,a_2,...} a0,a1,a2,...,用 { x i } ( i = 0 , 1 , . . . ) \{x^i\}(i=0,1,...) {xi}(i=0,1,...)这样的生成基构成形式幂级数 A ( x ) = a 0 + a 1 x + a 2 x 2 + . . . A(x)=a_0+a_1x+a_2x^2+... A(x)=a0+a1x+a2x2+... 使 { a i } \{a_i\} {ai} { x i } \{x^i\} {xi} 成一一对应关系,由此 { a i } \{a_i\} {ai} { x i } \{x^i\} {xi} 构成了一个整体,通过研究幂级数 A ( x ) A(x) A(x),导出数列 { a 0 , a 1 , a 2 , . . . } \{a_0,a_1,a_2,...\} {a0,a1,a2,...}的构造和性质。
A ( x ) A(x) A(x) 为序列 { a 0 , a 1 , a 2 , . . . } \{a_0,a_1,a_2,...\} {a0,a1,a2,...} 的生成函数,并记为 G ( a n ) G(a_n) G(an)

对于形式幂级数可以像收敛的幂级数那样进行运算,运算的定义和规则完全相同

定义 1.1:对于任意 A ( x ) = ∑ k = 0 ∞ a k x k A(x)=\sum^{\infty}_{k=0}a_kx^k A(x)=k=0akxk,规定 D A ( x ) DA(x) DA(x) A ( x ) A(x) A(x) 的导数且 D A ( x ) ≡ ∑ k = 0 ∞ k a k x k − 1 DA(x)\equiv \sum^{\infty}_{k=0}ka_kx^{k-1} DA(x)k=0kakxk1

2.生成函数性质

一个数列和它的生成函数是一一对应的。 已知数列便得知它的生成函数(系数项确定)。同理求得生成函数,则数列也随之而定。
数列 { a 0 , a 1 , a 2 , . . . } \{a_0,a_1,a_2,...\} {a0,a1,a2,...} 的生成函数为 A ( x ) = ∑ k = 0 ∞ a k x k A(x)=\sum^{\infty}_{k=0}a_kx^k A(x)=k=0akxk
数列 { b 0 , b 1 , b 2 , . . . } \{b_0,b_1,b_2,...\} {b0,b1,b2,...} 的生成函数为 B ( x ) = ∑ k = 0 ∞ b k x k B(x)=\sum^{\infty}_{k=0}b_kx^k B(x)=k=0bkxk
可以得到生成函数的如下一些性质

性质 2.1:若 b k = { 0 ( k < l ) a k − l ( k ≥ l ) b_k=\left\{\begin{matrix} 0 & (k<l)\\ a_{k-l} & (k\ge l) \end{matrix}\right. bk={0akl(k<l)(kl) B ( x ) = x l ⋅ A ( x ) B(x)=x^l\cdot A(x) B(x)=xlA(x)

性质 2.2:若 b k = a k + l b_k=a_{k+l} bk=ak+l ,则 B ( x ) = 1 x l ( A ( X ) − ∑ k = 0 l − 1 a k x k ) B(x)=\cfrac{1}{x^l}(A(X)-\sum_{k=0}^{l-1} a_kx^k) B(x)=xl1(A(X)k=0l1akxk)

性质 2.3:若 b k = ∑ i = 0 k a i b_k=\sum_{i=0}^{k}a_i bk=i=0kai,则 B ( x ) = A ( x ) 1 − x B(x)=\cfrac{A(x)}{1-x} B(x)=1xA(x)

性质 2.4:若 b k = ∑ i = k ∞ a i b_k=\sum_{i=k}^{\infty}a_i bk=i=kai,则 B ( x ) = A ( 1 ) − x A ( x ) 1 − x B(x)=\cfrac{A(1)-xA(x)}{1-x} B(x)=1xA(1)xA(x)

性质 2.5:若 b k = k a k b_k=ka_k bk=kak,则 B ( x ) = x A ( x ) B(x)=xA(x) B(x)=xA(x)

性质 2.6:若 b k = a k k + 1 b_k=\cfrac{a_k}{k+1} bk=k+1ak,则 B ( x ) = 1 x ∫ 0 x A ( t ) d t B(x)=\cfrac{1}{x}\int_{0}^{x}A(t)dt B(x)=x10xA(t)dt

性质 2.7:若 c k = α a k + β b k c_k=\alpha a_k+\beta b_k ck=αak+βbk,则 C ( x ) ≡ ∑ k = 0 ∞ c k x k = α A ( x ) + β B ( x ) C(x)\equiv \sum_{k=0}^{\infty}c_kx^k=\alpha A(x)+\beta B(x) C(x)k=0ckxk=αA(x)+βB(x)

数列生成函数
{1,1,1,…} G { 1 } = 1 1 − x G\{1\}=\cfrac{1}{1-x} G{1}=1x1
{ a 0 , a 1 , a 2 , . . . } \{a^0,a^1,a^2,...\} {a0,a1,a2,...} G { a k } = 1 1 − a x G\{a^k\}=\cfrac{1}{1-ax} G{ak}=1ax1
{0,1,2,…} G { k } = x ( 1 − x ) 2 G\{k\}=\cfrac{x}{(1-x)^2} G{k}=(1x)2x
{ 0 ⋅ 1 , 1 ⋅ 2 , 2 ⋅ 3 , . . . } \{0\cdot1,1\cdot2,2\cdot3,...\} {01,12,23,...} G { k ( k + 1 ) } = 2 x ( 1 − x ) 3 G\{k(k+1)\}=\cfrac{2x}{(1-x)^3} G{k(k+1)}=(1x)32x
{ 0 ⋅ 1 ⋅ 2 , 1 ⋅ 2 ⋅ 3 , 2 ⋅ 3 ⋅ 4 , . . . } \{0\cdot1\cdot2,1\cdot2\cdot3,2\cdot3\cdot4,...\} {012,123,234,...} G { k ( k + 1 ) ( k + 2 ) } = 6 x ( 1 − x ) 4 G\{k(k+1)(k+2)\}=\cfrac{6x}{(1-x)^4} G{k(k+1)(k+2)}=(1x)46x
{0,1,4,…} G { k 2 } = x ( 1 + x ) ( 1 − x ) 3 G\{k^2\}=\cfrac{x(1+x)}{(1-x)^3} G{k2}=(1x)3x(1+x)
{0,1,8,…} G { k 3 } = x 3 + 4 x 2 + x ( 1 − x ) 4 G\{k^3\}=\cfrac{x^3+4x^2+x}{(1-x)^4} G{k3}=(1x)4x3+4x2+x
{ 1 0 ! , 1 1 ! , 1 2 ! , . . . } \{\cfrac{1}{0!},\cfrac{1}{1!},\cfrac{1}{2!},...\} {0!1,1!1,2!1,...} G { 1 k ! } = e x G\{\cfrac{1}{k!}\}=e^x G{k!1}=ex
{ ( α 0 ) , ( α 1 ) , ( α 2 ) , . . . } \{\binom{\alpha}{0},\binom{\alpha}{1},\binom{\alpha}{2},...\} {(0α),(1α),(2α),...} G { ( α k ) } = ( 1 + x ) α G\{\binom{\alpha}{k}\}=(1+x)^\alpha G{(kα)}=(1+x)α
{ ( n + 0 0 ) , ( n + 1 1 ) , ( n + 2 2 ) , . . . } \{\binom{n+0}{0},\binom{n+1}{1},\binom{n+2}{2},...\} {(0n+0),(1n+1),(2n+2),...} G { ( n + k k ) } = 1 ( 1 − x ) n + 1 G\{\binom{n+k}{k}\}=\cfrac{1}{(1-x)^{n+1}} G{(kn+k)}=(1x)n+11

习题1、 求序列{5, 6, 7, …, n + 5, …}的生成函数

在这里插入图片描述

习题2、 利用生成函数计算 1 3 + 2 3 + . . . + n 3 1^3+2^3+...+n^3 13+23+...+n3

在这里插入图片描述

3.生成函数求解递推关系

生成函数求解递推关系基本步骤如下:

  1. A ( x ) = ∑ n = 0 ∞ f ( n ) x n A(x)=\sum_{n=0}^{\infty}f(n)x^n A(x)=n=0f(n)xn
  2. 将关于 f ( n ) f(n) f(n) 的递推关系式转化成关于 A ( x ) A(x) A(x) 的方程式
  3. 解出 A ( x ) A(x) A(x) ,将 A ( x ) A(x) A(x) 展开成 x 的幂级数, x n x^n xn 的系数即是 f ( n ) f(n) f(n)

习题3、 用生成函数求解递推关系 { f ( n ) = 4 f ( n − 2 ) f ( 0 ) = 0 , f ( 1 ) = 1 \left\{\begin{matrix} f(n)=4f(n-2)\\ f(0)=0,f(1)=1 \end{matrix}\right. {f(n)=4f(n2)f(0)=0,f(1)=1

在这里插入图片描述

习题4、 用生成函数求解递推关系 { f ( n ) = f ( n − 1 ) + 9 f ( n − 2 ) − 9 f ( n − 3 ) f ( 0 ) = 0 , f ( 1 ) = 1 , f ( 2 ) = 2 \left\{\begin{matrix} f(n)=f(n-1)+9f(n-2)-9f(n-3)\\ f(0)=0,f(1)=1,f(2)=2 \end{matrix}\right. {f(n)=f(n1)+9f(n2)9f(n3)f(0)=0,f(1)=1,f(2)=2

在这里插入图片描述

习题5、 用生成函数求解递推关系 { f ( n ) = f ( n − 1 ) + n 2 f ( 0 ) = 0 \left\{\begin{matrix} f(n)=f(n-1)+n^2\\ f(0)=0 \end{matrix}\right. {f(n)=f(n1)+n2f(0)=0

在这里插入图片描述

4.生成函数在计数问题中的应用

生成函数求计数问题基本步骤如下:

  1. 设定目标元素的各集合 M i = { . . . } M_i=\{...\} Mi={...}
  2. 展开式的积 → \rightarrow 封闭式的积 → \rightarrow 展开式的简洁式
  3. 从简洁展开式中找 x n x^n xn系数

4.1 组合数的生成函数

定理 4.1:设从 n 元集合 S = { a 1 , a 2 , . . . , a n } S=\{a_1,a_2,...,a_n\} S={a1,a2,...,an} 取 k 个元素的组合数为 b k b_k bk ,若限定元素 a i a_i ai 出现的次数集合为 M i M_i Mi , 则该组合数序列的生成函数 ∏ i = 1 n ( ∑ m ∈ M i x m ) \prod_{i=1}^{n} (\sum_{m\in M_i}^{} x^m) i=1n(mMixm)

习题6、 设多重集合 S = { ∞ ⋅ e 1 , ∞ ⋅ e 2 , ∞ ⋅ e 3 , ∞ ⋅ e 4 } S=\{\infty \cdot e_1,\infty \cdot e_2,\infty \cdot e_3,\infty \cdot e_4\} S={e1,e2,e3,e4}, a n a_n an表示集合 S 满足下列条件的 n 组合数,分别求数列 { a n a_n an} 生成函数
(1) e 1 e_1 e1不出现, e 2 e_2 e2至多出现 1 次
(2) e 1 e_1 e1出现 1,3 或 11 次, e 2 e_2 e2出现 2,4 或 5 次

在这里插入图片描述

4.2 排列数的指数型生成函数

定理 4.2:多重集合 M = { ∞ ⋅ a 1 , ∞ ⋅ a 2 , . . . , ∞ ⋅ a n } M=\{\infty \cdot a_1,\infty \cdot a_2,...,\infty \cdot a_n\} M={a1,a2,...,an} 的 k 排列中,若限定元素 a i a_i ai 出现的次数集合为 M i ( 1 ≤ i ≤ n ) M_i(1\le i \le n) Mi(1in),则排列数的指数型生成函数 ∏ i = 1 n ( ∑ m ∈ M i x m m ! ) \prod_{i=1}^{n} (\cfrac{\sum_{m\in M_i}^{} x^m}{m!}) i=1n(m!mMixm)
数列{1,1, ,1}的指数型生成函数 e ( x ) = ∑ n = 0 ∞ x n n ! e(x)=\sum_{n=0}^{\infty}\cfrac{x^n}{n!} e(x)=n=0n!xn, e ( x ) e ( y ) = e ( x + y ) e(x)e(y)=e(x+y) e(x)e(y)=e(x+y)

e ( x ) e ( − x ) = e ( 0 ) = 1 e ( − x ) = 1 e ( x ) e ( x ) + e ( − x ) 2 = 1 + x 2 2 ! + x 4 4 ! + . . . e ( x ) − e ( − x ) 2 = x 1 ! + x 3 3 ! + . . . e(x)e(-x)=e(0)=1 \quad\quad\quad\quad\quad\quad\quad\quad\quad\quad e(-x)=\cfrac{1}{e(x)}\\ \cfrac{e(x)+e(-x)}{2}=1+\cfrac{x^2}{2!}+\cfrac{x^4}{4!}+... \quad\quad\quad\quad\quad \cfrac{e(x)-e(-x)}{2}=\cfrac{x}{1!}+\cfrac{x^3}{3!}+... e(x)e(x)=e(0)=1e(x)=e(x)12e(x)+e(x)=1+2!x2+4!x4+...2e(x)e(x)=1!x+3!x3+...

习题7、 a,b,c,d,e 组成的长为 n 的字中,要求 a 与 b 的个数之和为偶数,这样的字有多少个?

在这里插入图片描述

4.3 组合型分配问题

定理 4.3:把 k 个相同的球放入 n 个不同的盒子 a 1 , a 2 , . . . , a n a_1,a_2,...,a_n a1,a2,...,an 中,限定盒子 a i a_i ai 的容量集合为 M i M_i Mi , 则其分配方案数的生成函数 ∏ i = 1 n ( ∑ m ∈ M i x m ) \prod_{i=1}^{n} (\sum_{m\in M_i}^{} x^m) i=1n(mMixm)

习题8、 求方程 x 1 + 2 x 2 + 4 x 3 = 21 x^1+2x^2+4x^3=21 x1+2x2+4x3=21 的正整数解的个数?

该问题相当于从 S = { ∞ ⋅ a 1 , ∞ ⋅ a 2 , ∞ ⋅ a 3 } S=\{ \infty \cdot a_1,\infty \cdot a_2,\infty \cdot a_3 \} S={a1,a2,a3} 中取出21个组合数,设 a 1 , a 2 , a 3 a_1,a_2,a_3 a1,a2,a3 限制出现的次数集合为 M 1 = { 1 , 2 , 3 , . . . } , M 2 = { 2 , 4 , . . . } , M 3 = { 4 , 8 , . . . } M_1=\{1,2,3,...\},M_2=\{2,4,...\},M_3=\{4,8,...\} M1={1,2,3,...},M2={2,4,...},M3={4,8,...}
组合生成函数为 ( x + x 2 + . . . ) ( x 2 + x 4 + . . . ) ( x 4 + x 8 + . . . ) = x 7 1 1 − x ⋅ 1 1 − x 2 ⋅ 1 1 − x 4 = x 7 ( 1 + x ) 1 ( 1 − x 2 ) 2 ⋅ 1 1 − x 4 = x 7 ( 1 + x ) ( 1 + x 2 ) 2 1 ( 1 − x 4 ) 3 = ( x 7 + x 8 + 2 x 9 + 2 x 10 + x 11 + x 12 ) ∑ k = 0 ∞ ( k + 3 − 1 k ) x 4 k (x+x^2+...)(x^2+x^4+...)(x^4+x^8+...)\\=x^7\cfrac{1}{1-x}\cdot \cfrac{1}{1-x^2}\cdot \cfrac{1}{1-x^4}\\=x^7(1+x)\frac{1}{(1-x^2)^2}\cdot \cfrac{1}{1-x^4}\\=x^7(1+x)(1+x^2)^2\cfrac{1}{(1-x^4)^3}\\=(x^7+x^8+2x^9+2x^{10}+x^{11}+x^{12})\sum_{k=0}^{\infty}\binom{k+3-1}{k}x^{4k} (x+x2+...)(x2+x4+...)(x4+x8+...)=x71x11x211x41=x7(1+x)(1x2)211x41=x7(1+x)(1+x2)2(1x4)31=(x7+x8+2x9+2x10+x11+x12)k=0(kk+31)x4k x 21 x^{21} x21 的系数为 2 ⋅ ( 3 + 3 − 1 3 ) = 20 2\cdot \binom{3+3-1}{3}=20 2(33+31)=20

4.4 排列型分配问题

定理 4.4:把 k 个不同的球放入 n 个不同的盒子 a 1 , a 2 , . . . , a n a_1,a_2,...,a_n a1,a2,...,an 中,限定盒子 a i a_i ai 的容量集合为 M i M_i Mi , 则其分配方案数的生成函数 ∏ i = 1 n ( ∑ m ∈ M i x m m ! ) \prod_{i=1}^{n} (\cfrac{\sum_{m\in M_i}^{} x^m}{m!}) i=1n(m!mMixm)

习题9、 用红、白、蓝 3 种颜色给1×n棋盘着色,要求白色方格数是偶数,有多少种方案?

在这里插入图片描述


第四章课后习题:作业 第四章 生成函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

恭仔さん

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值