生成函数

定义

f ( x ) = a 0 + a 1 x + a 2 x 2 + a 3 x 3 + . . . f(x)=a_{0}+a_{1}x+a_{2}x^{2}+a_{3}x^{3}+... f(x)=a0+a1x+a2x2+a3x3+... f ( x ) f(x) f(x)是序列 a 0 , a 1 , a 2 , a 3 . . . a_{0},a_{1},a_{2},a_{3}... a0,a1,a2,a3...的生成函数

题目

有1克、2克、3克、4克的砝码各一枚,能称出哪几种重量?每种重量各有几种可能方案?

  • 1 1 1 1 1 1克砝码可以看成 1 + x 1 1+x^{1} 1+x1,1表示不取, x 1 x^{1} x1表示取一个重量为 1 1 1
  • 1个2克砝码可以看成 1 + x 2 1+x^{2} 1+x2,…
  • 1个3克砝码可以看成 1 + x 3 1+x^{3} 1+x3,…
  • 1个4克砝码可以看成 1 + x 4 1+x^{4} 1+x4,…
  • 那么生成函数就是
    f ( x ) = ( 1 + x 1 ) ( 1 + x 2 ) ( 1 + x 3 ) ( 1 + x 4 ) f(x)=(1+x^{1})(1+x^{2})(1+x^{3})(1+x^{4}) f(x)=(1+x1)(1+x2)(1+x3)(1+x4)
    f ( x ) = 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 f(x)=1+x+x^{2}+2x^{3}+2x^{4}+2x^{5}+2x^{6}+2x^{7}+x^{8}+x^{9}+x^{10} f(x)=1+x+x2+2x3+2x4+2x5+2x6+2x7+x8+x9+x10
  • 这个函数中可以看出重量为3克的方案有两种,重量为7的方案有两种,重量为10的有1种。
  • 不难发现指数表示重量,系数表示方案数。

特殊情况

a a a = { 1 , 1 , 1 , . . 1 1,1,1,..1 1,1,1,..1}时, f ( x ) = 1 + x + x 2 + x 3 + x 4 + . . . = 1 1 − x f(x)=1+x+x^{2}+x^{3}+x^{4}+...=\frac{1}{1-x} f(x)=1+x+x2+x3+x4+...=1x1
推广 1 ( 1 − x ) k = ∑ i = 0 ∞ C i + k − 1 k − 1 x i = f k ( x ) \frac{1}{(1-x)^{k}}=\sum_{i=0}^{\infty}C_{i+k-1}^{k-1}x^{i}=f^{k}(x) (1x)k1=i=0Ci+k1k1xi=fk(x)(相当于从k个 [ x 0 , x i ] [x^{0},x^{i}] [x0,xi]的集合中选择一些数,使得选出数的指数和为k的方案数)

斐波那契数列通项公式

f ( x ) = x + x 2 + 2 x 3 + 3 x 4 + . . . f(x)=x+x^{2}+2x^{3}+3x^{4}+... f(x)=x+x2+2x3+3x4+...
x ⋅ f ( x ) = x 2 + x 3 + 2 x 4 + 3 x 4 + . . . x\cdot f(x)=x^{2}+x^{3}+2x^{4}+3x^{4}+... xf(x)=x2+x3+2x4+3x4+...
f ( x ) − x ⋅ f ( x ) = x + x 3 + x 4 + . . . = x + x 2 ⋅ f ( x ) f(x)-x\cdot f(x)=x+x^{3}+x^{4}+...=x+x^{2}\cdot f(x) f(x)xf(x)=x+x3+x4+...=x+x2f(x)
f ( x ) = 1 1 − x − x 2 = x ( 1 − 1 − 5 2 x ) ( 1 − 1 + 5 2 x ) = − 1 5 1 1 − 1 − 5 2 x + 1 5 1 1 − 1 + 5 2 x f(x)=\frac{1}{1-x-x^{2}}=\frac{x}{(1-\frac{1-\sqrt{5}}{2}x)(1-\frac{1+\sqrt{5}}{2}x)}=-\frac{1}{\sqrt{5}}\frac{1}{1-\frac{1-\sqrt{5}}{2}x}+\frac{1}{\sqrt{5}}\frac{1}{1-\frac{1+\sqrt{5}}{2}x} f(x)=1xx21=(1215 x)(121+5 x)x=5 11215 x1+5 1121+5 x1
a n = − 1 5 ( 1 − 5 2 ) n + 1 5 ( 1 + 5 2 ) n a_{n}=-\frac{1}{\sqrt{5}}(\frac{1-\sqrt{5}}{2})^{n}+\frac{1}{\sqrt{5}}(\frac{1+\sqrt{5}}{2})^{n} an=5 1(215 )n+5 1(21+5 )n

指数生成函数

e x = ∑ n = 0 ∞ x n n ! = 1 + x + x 2 2 ! + . . . + x n n ! + . . . e^{x}=\sum_{n=0}^{\infty}\frac{x^{n}}{n!}=1+x+\frac{x^{2}}{2!}+...+\frac{x^{n}}{n!}+... ex=n=0n!xn=1+x+2!x2+...+n!xn+...
数列 h 0 , h 1 , h 2 , . . . , h n h_{0},h_{1},h_{2},...,h_{n} h0,h1,h2,...,hn的指数型生成函数为
g ( e ) ( x ) = ∑ n = 0 ∞ h n x n n ! = h 0 + h 1 x + h 2 x 2 2 ! + . . . + h n x n n ! + . . . g^{(e)}(x)=\sum_{n=0}^{\infty}h_{n}\frac{x^{n}}{n!}=h_{0}+h_{1}x+h_{2}\frac{x^{2}}{2!}+...+h_{n}\frac{x^{n}}{n!}+... g(e)(x)=n=0hnn!xn=h0+h1x+h22!x2+...+hnn!xn+...

常用指数型生成函数闭形式

1 + x + x 2 2 ! + x 3 3 ! + . . . = e x 1+x+\frac{x^{2}}{2!}+\frac{x^{3}}{3!}+...=e^{x} 1+x+2!x2+3!x3+...=ex
1 − x + x 2 2 ! − x 3 3 ! + . . . = e − x 1-x+\frac{x^{2}}{2!}-\frac{x^{3}}{3!}+...=e^{-x} 1x+2!x23!x3+...=ex
1 + x 2 2 ! + x 4 4 ! + x 6 6 ! + . . . = e x + e − x 2 1+\frac{x^{2}}{2!}+\frac{x^{4}}{4!}+\frac{x^{6}}{6!}+...=\frac{e^{x}+e^{-x}}{2} 1+2!x2+4!x4+6!x6+...=2ex+ex
x + x 3 3 ! + x 5 5 ! + x 7 7 ! + . . . = e x − e − x 2 x+\frac{x^{3}}{3!}+\frac{x^{5}}{5!}+\frac{x^{7}}{7!}+...=\frac{e^{x}-e^{-x}}{2} x+3!x3+5!x5+7!x7+...=2exex

定理

假设有k种元素(元素内不区分),每一种分别有 n 1 , n 2 , n 3 , . . . , n k n_{1},n_{2},n_{3},...,n_{k} n1,n2,n3,...,nk个, h n h_{n} hn表示大小为n的排列有多少种情况,那么数列 h 0 , h 1 , h 2 , . . . , h n h_{0},h_{1},h_{2},...,h{n} h0,h1,h2,...,hn的指数型生成函数为:
g ( e ) ( x ) = f n 1 ( x ) f n 2 ( x ) . . . f n k ( x ) g^{(e)}(x)=f_{n_{1}}(x)f_{n_{2}}(x)...f_{n_{k}}(x) g(e)(x)=fn1(x)fn2(x)...fnk(x)
f n i ( x ) = 1 + x + x 2 2 ! + x 3 3 ! + . . . + x n i n i ! f_{n_{i}}(x)=1+x+\frac{x^{2}}{2!}+\frac{x^{3}}{3!}+...+\frac{x^{n_{i}}}{n_{i}!} fni(x)=1+x+2!x2+3!x3+...+ni!xni
考虑把 g ( e ) ( x ) g^{(e)}(x) g(e)(x)展开,应该是如下形式:
x m 1 m 1 ! ⋅ x m 2 m 2 ! ⋅ . . . ⋅ x m k m k ! = x m 1 + m 2 + . . . + m k m 1 ! ⋅ m 2 ! ⋅ . . . ⋅ m k ! \frac{x^{m_{1}}}{m_{1}!}\cdot \frac{x^{m_{2}}}{m_{2}!}\cdot...\cdot\frac{x^{m_{k}}}{m_{k}!}=\frac{x^{m_{1}+m_{2}+...+m_{k}}}{m_{1}!\cdot m_{2}!\cdot ... \cdot m_{k}!} m1!xm1m2!xm2...mk!xmk=m1!m2!...mk!xm1+m2+...+mk
n = m 1 + m 2 + m 3 + . . . + m k n=m_{1}+m_{2}+m_{3}+...+m_{k} n=m1+m2+m3+...+mk,则:
x m 1 + m 2 + . . . + m k m 1 ! ⋅ m 2 ! ⋅ . . . ⋅ m k ! = x n m 1 ! ⋅ m 2 ! ⋅ . . . ⋅ m k ! = n ! ⋅ x n m 1 ! ⋅ m 2 ! ⋅ . . . ⋅ m k ! ⋅ n ! = n ! m 1 ! ⋅ m 2 ! ⋅ . . . ⋅ m k ! x n n ! \frac{x^{m_{1}+m_{2}+...+m_{k}}}{m_{1}!\cdot m_{2}!\cdot ... \cdot m_{k}!}=\frac{x^{n}}{m_{1}!\cdot m_{2}!\cdot ... \cdot m_{k}!}=\frac{n!\cdot x^{n}}{m_{1}!\cdot m_{2}!\cdot ... \cdot m_{k}!\cdot n!}=\frac{{n!}}{m_{1}!\cdot m_{2}!\cdot ... \cdot m_{k}!}\frac{x^{n}}{n!} m1!m2!...mk!xm1+m2+...+mk=m1!m2!...mk!xn=m1!m2!...mk!n!n!xn=m1!m2!...mk!n!n!xn
对于 n = m 1 + m 2 + m 3 + . . . + m k n=m_{1}+m_{2}+m_{3}+...+m_{k} n=m1+m2+m3+...+mk,大小为 n n n的排列数就为:
∑ n ! m 1 ! ⋅ m 2 ! ⋅ . . . ⋅ m k ! \sum \frac{{n!}}{m_{1}!\cdot m_{2}!\cdot ... \cdot m_{k}!} m1!m2!...mk!n!
证毕

指数生成函数例题

用红,白,蓝三种颜色给 1 ∗ n 1*n 1n的棋盘着色,要求红色的方格数是偶数,确定给这个棋盘着色的方法数
h n h_{n} hn表示这样的着色数,其中我们定义 h 0 = 1 h_{0}=1 h0=1

  • h n h_{n} hn为有3种颜色(红,白,蓝)的多重集合的n排列数,其中每一种颜色可以使用 ∞ \infty 次,且要求红色出现的次数是偶数。
  • 我们能过得到一个生成函数:
    g ( e ) ( x ) = ( 1 + x 2 2 ! + x 4 4 ! + . . . ) ( 1 + x 1 1 ! + x 2 2 ! + . . . ) ( 1 + x 1 1 ! + x 2 2 ! + . . . ) g^{(e)}(x)=(1+\frac{x^{2}}{2!}+\frac{x^{4}}{4!}+...)(1+\frac{x^{1}}{1!}+\frac{x^2}{2!}+...)(1+\frac{x^{1}}{1!}+\frac{x^2}{2!}+...) g(e)(x)=(1+2!x2+4!x4+...)(1+1!x1+2!x2+...)(1+1!x1+2!x2+...)
    g ( e ) ( x ) = 1 2 ( e x + e − x ) ⋅ e 2 x = 1 2 ( e 3 x + e x ) g^{(e)}(x)=\frac{1}{2}(e^{x}+e^{-x})\cdot e^{2x}=\frac{1}{2}(e^{3x}+e^{x}) g(e)(x)=21(ex+ex)e2x=21(e3x+ex)
    g ( e ) ( x ) = 1 2 ( ∑ n = 0 ∞ 3 n x n n ! + ∑ n = 0 ∞ x n n ! ) = 1 2 ∑ n = 0 ∞ ( 3 n + 1 ) x n n ! g^{(e)}(x)=\frac{1}{2}(\sum_{n=0}^{\infty}3^{n}\frac{x^{n}}{n!}+\sum_{n=0}^{\infty}\frac{x^{n}}{n!})=\frac{1}{2}\sum_{n=0}^{\infty}(3^{n}+1)\frac{x^{n}}{n!} g(e)(x)=21(n=03nn!xn+n=0n!xn)=21n=0(3n+1)n!xn
    h n = 3 n + 1 2 h_{n}=\frac{3^{n}+1}{2} hn=23n+1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值