生成函数
什么样的数列,生成函数是如下式子
(1+x+x2+x3+x4+x5)(1+x+x2)(1+x+x2+x3+x4)
解
- xe1(0⩽e1⩽5),xe2(0⩽e2⩽2),xe3(0⩽e3⩽4) 分别是第一个、第二个、第三个因子
- 假设 e1+e2+e3=n,则 xe1xe2xe3=xn
- xn 的系数是 e1+e2+e3=n 的整数解的个数 hn,其中 e1,e2,e3 满足上述的范围
确定 Apple, Banana, Orange, Pear 的 n 组合数,Apple 偶数,Banana 奇数,Orange ∈[0,4],Pear ⩾1
解
- 等价于接触 a+b+c+d=n 的非负整数解的个数 hn,分别满足上述条件
- 为每种水果创建一个因子,其中的指数为该类型水果的 n 组合中允许的数量
g(x)=(1+x2+x4+…)⋅(x+x3+x5+…)⋅(1+x+x2+x3+x4)⋅(x+x2+x3+…)=1−x211−x2x1−x1−x51−xx=(1−x2)2(1−x)2x2(1−x5)
类似的,Apple 偶数,Banana 5 的倍数,Orange 不超过 4 个,Pear 最多一个
g(x)=(1+x2+x4+…)(1+x5+x10+…)(1+x+x2+x3+x4)(1+x)=(1−x)21=n=0∑∞(nn+1)xn=n=0∑∞(n+1)xn
指数生成函数
g(e)(x)=n=0∑∞hnn!xn=h0+h1x+h22!x2+h33!x3+hnn!xn+…
- 数列 {an=1} 的指数生成函数为 g(e)(x)=n=0∑∞n!xn=ex
- 数列 {1,a,a2,…} 的指数生成函数为 n=0∑∞ann!xn=eax
定理 7.3.1
hn 是多重集合 ≌{n1⋅a1,…,nk⋅ak} 的 n 排列数,则数列 {hn} 的指数生成函数
g(e)(x)=fn1(x)fn2(x)…fnk(x)其中 fni(x)=1+x+2!x2+…+ni!xni
展开 g(e)(x) 得到项
m1!xm1m2!xm2…mk!xmk=m1!m2!…mk!xm1+…+mk=m1!m2!…mk!n!n!xn
其中 n=Σm,0⩽m1⩽n1,…,0⩽mk⩽nk
n!xn 的系数是 ∑m1!m2!…mk!n!
S 的组合 {m1⋅a1,…,mk⋅ak} 的排列数为 m1!m2!…mk!n!
例:hn 表示由数字 1, 2, 3 构造的 n 位数的个数,1 有偶数个,2 至少有三个,3 最多四个,确定指数生成函数
解
h1(x)h2(x)h3(x)=1+2!x2+4!x4+…=3!x3+4!x4+5!x5…=1+x+2!x2+3!x3+4!x4g(e)(x)=h1(x)h2(x)h3(x)
例:确定满足条件的 n 位数的个数 hn:每个数字都是奇数,且数字 1 和 3 出现次数为偶数
解
hn 等于多重集合 {∞⋅1,∞⋅3,∞⋅5,∞⋅7,∞⋅9} 的 n 排列中 1, 3 出现偶数次的 n 排列数
g(e)(x)=(1+2!x2+4!x4+…)2(1+x+2!x2+…)3=(2ex+e−x)2e3x=41(e5x+2e3x+ex)=41(∑5nn!xn+2∑3nn!xn+∑n!xn)=n=0∑∞(45n+2×3n+1)n!xnhn=45n+2×3n+1