生成函数

本文介绍了递推关系的概念,通过定义展示了如何利用生成函数解决递推关系问题,包括汉诺塔问题、错排问题和整数拆分问题。通过实例详细解析了指数型生成函数在错排问题中的应用,以及整数拆分问题的不同解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 定义

实数序列a0,a1,…,ak,…a_0,a_1,\dots,a_k,\dotsa0,a1,,ak,的生成函数是无穷级数
G(x)=a0+a1x+a2x2+⋯+akxk+⋯=∑k=0∞akxk G(x)=a_{0}+a_{1} x+a_{2} x^{2}+\dots+a_{k} x^{k}+\cdots=\sum_{k=0}^{\infty} a_{k} x^{k} G(x)=a0+a1x+a2x2++akxk+=k=0akxk

2. 定义:什么是递推关系

序列{an}\{a_n\}{an}的递归关系是用序列的一个或多个前一项表示an的方程,即a0,a1,…,an−1a_0,a_1,\dots, a_{n-1}a0,a1,,an1,对于所有整数nnn,其中n≥n0n\geq n_0nn0,其中n0n_0n0是非负整数。

  • 例子
    • 汉诺塔
      hn=2hn−1+1,h1=0h_n = 2h_{n-1}+1,\quad h_1=0hn=2hn1+1,h1=0

    • 斐波那契序列
      Fn=Fn−1+Fn−2,F1=F2=1F_n = F_{n-1}+F_{n-2},\quad F_1 = F_2 = 1Fn=Fn1+Fn2,F1=F2=1

    • 卡特兰数
      例:用内对角线将一个凸n多边形划分成三角形的并,有多少个不同的划分方法?
      Cn+1=C2Cn+C3Cn−1+C4Cn−2+⋯+Cn2C4+Cn−1C3+CnC2C_{n+1}=C_{2} C_{n}+C_{3} C_{n-1}+C_{4} C_{n-2}+\cdots+C_{n 2} C_{4}+C_{n-1} C_{3}+C_{n} C_{2}Cn+1=C2Cn+C3Cn1+C4Cn2++Cn2C4+Cn1C3+CnC2
      2(n−3)Cn=n(C3Cn−1+C4Cn−2+⋯+Cn−2C4+Cn−1C3)2(n-3) C_{n}=n\left(C_{3} C_{n-1}+C_{4} C_{n-2}+\cdots+C_{n-2} C_{4}+C_{n-1} C_{3}\right)2(n3)Cn=n(C3Cn1+C4Cn2++Cn2C4+Cn1C3)

    • 错排问题
      nnn个数1,2,…,n1,2,…,n12n错排的数目为DnD_nDn,可得递推关系:
      Dn=(n−1)(Dn−1+Dn−2),D0=1,D1=0,D2=1D_{n}=(n-1)\left(D_{n-1}+D_{n-2}\right), \quad D_{0}=1,\quad D_{1}=0, \quad D_{2}=1Dn=(n1)(Dn1+Dn2),D0=1,D1=0,D2=1

3.定义:什么是递推关系的解

如果序列的项满足递归关系,则称为递归关系的解。

4. 用生成函数求解递推关系

4.1 汉诺塔问题

hn=2hn−1+1,h1=0h_n = 2h_{n-1}+1,\quad h_1=0hn=2hn1+1,h1=0
H(x)=h1x+h2x2+…H(x)=h_{1} x+h_{2} x^{2}+\ldotsH(x)=h1x+h2x2+
H(x):H(x):H(x):
H(x)−2xH(x)=h1x+[h2−2h1]x2+[h3−2h2]x3+… H(x)-2xH(x)=h_{1} x+\left[h_{2}-2 h_{1}\right] x^{2}+\left[h_{3}-2 h_{2}\right] x^{3}+\ldots H(x)2xH(x)=h1x+[h22h1]x2+[h32h2]x3+
h1=1,h2−2h1=1,h3−2h2=1,…,h_{1}=1, h_{2}-2 h_{1}=1, h_{3}-2 h_{2}=1, \ldots,h1=1,h22h1=1,h32h2=1,,
∴(1−2x)H(x)=x+x2+x3+…=x/(1−x)\therefore(1-2 x) H(x)=x+x^{2}+x^{3}+\ldots=x /(1-x)(12x)H(x)=x+x2+x3+=x/(1x)
H(x)=x(1−x)(1−2x)H(x)=A1−x+B1−2x \begin{aligned} H(x)=\frac{x}{(1-x)(1-2 x)} \quad H(x)=\frac{A}{1-x}+\frac{B}{1-2 x} \end{aligned} H(x)=(1x)(12x)xH(x)=1xA+12xB
H(x)=11−2x−11−x=(1+2x+22x2+23x3+⋯ )−(1+x+x2+x3+⋯ )=(1−1)+(2−1)x+(22−1)x2+(23−1)x3+⋯ \begin{aligned} H(x) &=\frac{1}{1-2 x}-\frac{1}{1-x} \\ &=\left(1+2 x+2^{2} x^{2}+2^{3} x^{3}+\cdots\right)-\left(1+x+x^{2}+x^{3}+\cdots\right) \\ &=(1-1)+(2-1) x+\left(2^{2}-1\right) x^{2}+\left(2^{3}-1\right) x^{3}+\cdots \end{aligned} H(x)=12x11x1=(1+2x+22x2+23x3+)(1+x+x2+x3+)=(11)+(21)x+(221)x2+(231)x3+
∴hk=2k−1\therefore h_{k}=2^{k}-1hk=2k1

4.2 指数型生成函数
4.2.1 定义

实数序列a0、a1、…、ak、…a_0、a_1、…、a_k、…a0a1ak的指数生成函数是无穷级数
fe(x)=a0+a1x11!+a2x22!+⋯+anxnn!+⋯=∑n=0∞anxnn! f_{e}(x)=a_{0}+a_{1} \frac{x^{1}}{1 !}+a_{2} \frac{x^{2}}{2 !}+\cdots+a_{n} \frac{x^{n}}{n !}+\cdots=\sum_{n=0}^{\infty} a_{n} \frac{x^{n}}{n !} fe(x)=a0+a11!x1+a22!x2++ann!xn+=n=0ann!xn

4.2.2 错排问题

nnn个数1,2,…,n1,2,…,n12n错排的数目为DnD_nDn,可得递推关系:
Dn=(n−1)(Dn−1+Dn−2),D0=1,D1=0,D2=1D_{n}=(n-1)\left(D_{n-1}+D_{n-2}\right), \quad D_{0}=1,\quad D_{1}=0, \quad D_{2}=1Dn=(n1)(Dn1+Dn2),D0=1,D1=0,D2=1
Dn=(n−1)(Dn−1+Dn−2)Dn−nDn−1=−[Dn−1−(n−1)Dn−2]=(−1)2[Dn−2−(n−2)Dn−3]=…=(−1)n−1(D1−D0) \begin{aligned} D_{n} &=(n-1)\left(D_{n-1}+D_{n-2}\right) \\ D_{n}-n D_{n-1} &=-\left[D_{n-1}-(n-1) D_{n-2}\right] \\ &=(-1)^{2}\left[D_{n-2}-(n-2) D_{n-3}\right]=\ldots \\ &=(-1)^{n-1}\left(D_{1}-D_{0}\right) \end{aligned} DnDnnDn1=(n1)(Dn1+Dn2)=[Dn1(n1)Dn2]=(1)2[Dn2(n2)Dn3]==(1)n1(D1D0)
∴Dn−nDn−1=(−1)n\therefore D_n -n D_{n-1}=(-1)^nDnnDn1=(1)n
DnD_nDn的指数型生成函数为:
Ge(x)=D0+D1x+D22!x2+D33!x3+⋯ G_{e}(x)=D_{0}+D_{1} x+\frac{D_{2}}{2 !} x^{2}+\frac{D_{3}}{3 !} x^{3}+\cdots Ge(x)=D0+D1x+2!D2x2+3!D3x3+
由于
Ge(x)=D0+D1x+D22!x2+D33!x3+⋯xGe(x)=D0x+D1x2+D22!x3+D33!x4+⋯Dnn!−Dn−1(n−1)!=(Dnn−Dn−1)1(n−1)!=(−1)nn! \begin{array}{l}{G_{e}(x)=D_{0}+D_{1} x+\frac{D_{2}}{2 !} x^{2}+\frac{D_{3}}{3 !} x^{3}+\cdots} \\ {x G_{e}(x)=\quad D_{0} x+D_{1} x^{2}+\frac{D_{2}}{2 !} x^{3}+\frac{D_{3}}{3 !} x^{4}+\cdots} \\ {\frac{D_{n}}{n !}-\frac{D_{n-1}}{(n-1) !}=\left(\frac{D_{n}}{n}-D_{n-1}\right) \frac{1}{(n-1) !}=\frac{(-1)^{n}}{n !}}\end{array} Ge(x)=D0+D1x+2!D2x2+3!D3x3+xGe(x)=D0x+D1x2+2!D2x3+3!D3x4+n!Dn(n1)!Dn1=(nDnDn1)(n1)!1=n!(1)n

Ge(x)−xGe(x)=e−x G_{e}(x)-x G_{e}(x)=e^{-x} Ge(x)xGe(x)=ex
因此
Ge(x)=e−x1−x=(1−x+x22!−…±xnn!±⋯ )/(1−x)=(1−x+x22!−⋯±xnn!∓⋯ )(1+x+x2+⋯ ) \begin{array}{l}{G_{e}(x)=\frac{e^{-x}}{1-x}=\left(1-x+\frac{x^{2}}{2 !}-\ldots \pm \frac{x^{n}}{n !} \pm \cdots\right) /(1-x)} \\ {=\left(1-x+\frac{x^{2}}{2 !}-\cdots \pm \frac{x^{n}}{n !} \mp \cdots\right)\left(1+x+x^{2}+\cdots\right)}\end{array} Ge(x)=1xex=(1x+2!x2±n!xn±)/(1x)=(1x+2!x2±n!xn)(1+x+x2+)
∴Dn=(1−1+12!−⋯±1n!)n!\therefore D_{n}=\left(1-1+\frac{1}{2 !}-\cdots \pm \frac{1}{n !}\right) n !Dn=(11+2!1±n!1)n!

4.3 整数拆分问题
4.31 定义

所谓整数拆分即把整数分解成若干整数的和,相当于把nnn个无区别的球放到nnn个无标志的盒子,盒子允许空着,也允许放多于一个球。整数拆分成若干整数的和,办法不一,不同拆分法的总数叫做拆分数。

例子1

若有1克、2克、3克、4克的砝码各一枚,问能称出那几种重量?有几种可能方案?
(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 \begin{array}{l}{(1+x)\left(1+x^{2}\right)\left(1+x^{3}\right)\left(1+x^{4}\right)} \\ {=\left(1+x+x^{2}+x^{3}\right)\left(1+x^{3}+x^{4}+x^{7}\right)} \\ {=1+x+x^{2}+2 x^{3}+2 x^{4}+2 x^{5}+2 x^{6}+2 x^{7}+x^{8}+x^{9}+x^{10}}\end{array} (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
0克:1,1克:1,2克:1,3克:2,4克:2,5克:2,6克:2,7克:2,8克:1,9克:1,10克:10克:1, 1克:1, 2克:1, 3克:2, 4克:2, 5克:2, 6克:2, 7克:2, 8克:1, 9克:1, 10克:10:1,1:1,2:1,3:2,4:2,5:2,6:2,7:2,8:1,9:1,10:1

例子2

若有1克、2克、3克的砝码各无数枚,问能称出那几种重量?有几种可能方案?
G(x)=(1+x+x2+… )(1+x2+x4+… )(1+x3+x6+… ) G(x)=\left(1+x+x^{2}+\dots\right)\left(1+x^{2}+x^{4}+\dots\right)\left(1+x^{3}+x^{6}+\dots\right) G(x)=(1+x+x2+)(1+x2+x4+)(1+x3+x6+)

例子3

整数nnn拆分成1,2,3,…,m1,2,3,…,m123m的和,并允许重复,有多少种拆分方法?
G1(x)=(1+x+x2+⋯ )(1+x2+x4+⋯ )⋯(1+xm+x2m+⋯ )=11−x11−x2⋯11−xm \begin{array}{l}{G_{1}(x)} \\ {=\left(1+x+x^{2}+\cdots\right)\left(1+x^{2}+x^{4}+\cdots\right) \cdots\left(1+x^{m}+x^{2 m}+\cdots\right)} \\ {=\frac{1}{1-x} \frac{1}{1-x^{2}} \cdots \frac{1}{1-x^{m}}}\end{array} G1(x)=(1+x+x2+)(1+x2+x4+)(1+xm+x2m+)=1x11x211xm1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值