zoukankan      html  css  js  c++  java
  • 用生成函数推导数列的通项公式

    用生成函数推导数列的通项公式

    约定:

    (C_a^b)(a choose b)意义相同

    (a!)表示(a)的阶乘

    预备知识

    广义二项式定理

    广义二项式定理是把一般的二项式定理从整数域推广到了实数域

    定义:

    [C_{alpha}^{k}=egin{cases} frac{alpha(alpha-1)(alpha-2) dots (alpha-k+1)}{k!},k geq 1 \ 1,k=0 \ 0,k<0 end{cases}(k in mathbb{Z},alpha in mathbb{R}) ag{1.1.1} ]

    那么有

    [(x+y)^{alpha}=sum_{k=0}^{infin} C_{alpha}^{k} x^{alpha-k}y^k (alpha in mathbb{R}) ag{1.1.2} ]

    推论:

    推论1 $$(x+y)^n=sum_{k=0}^{n} C_{n}^{k} x^{n-k}y^k (n in mathbb{N^+}) ag{1.1.3}$$

    容易看出,这就是一般的二项式定理。

    证明:拆成两部分

    [egin{aligned} (x+y)^n &=sum_{k=0}^{infin} C_{n}^{k} x^{n-k}y^k \ &=sum_{k=0}^{n} C_{n}^{k} x^{n-k}y^k+ sum_{k=n+1}^{infin} C_{n}^{k} x^{n-k}y^kend{aligned} ]

    注意到当(n,k in mathbb N),且(n<k)时,(frac{n(n-1)(n-2) dots (n-k+1)}{k!})的分子中一定有一项是0,所以(C_n^k=0)

    那么((x+y)^n=sum_{k=0}^{n} C_{n}^{k} x^{n-k}y^k (n in mathbb{N^+}))

    推论2 $$(x+y)^{-n}=sum_{k=0}^{infin} (-1)^k C_{n+k-1}^{n-1} x^{n-k}y^k (n in mathbb{N^+}) ag{1.1.4}$$

    证明:

    [egin{aligned} C_{-n}^{k} &=frac{(-n)(-n-1)(-n-2) dots (-n-k+1)}{k!} \ &= (-1)^k frac{n(n+1)(n+2) dots (n+k-1)}{k!} \ &=(-1)^k C_{n+k-1}^{k}=(-1)^k C_{n+k-1}^{n-1}end{aligned} ]

    代入广义二项式定理的表达式,

    [(x+y)^{-n}=sum_{k=0}^{infin}(-1)^k C_{n+k-1}^{n-1} x^{n-k}y^k (n in mathbb{N^+}) ]

    形式幂级数

    定义$$A(x)=a_0+a_1x+a_2x^2+dots+a_nx^n+dots=sum_{i=0}^{infty} a_ix^i$$为以x为未定元的一个形式幂级数。在形式幂级数中,我们不关心x的取值和级数是否收敛,把x作为形式,只关心系数。

    再介绍一下形式幂级数的基本运算,下面会用到。

    加法就是把对应项的系数相加

    [A(x)+B(x)=sum_{n=0}^{infty} (a_n+b_n)x^n ag{1.2.1} ]

    乘法和多项式乘法类似

    [A(x) cdot B(x)=sum_{n=0}^{infty} sum_{k=0}^n a_kb_{n-k} ag{1.2.2} ]

    普通生成函数(OGF)

    定义

    对于一个序列(a),我们定义(f(x)=sum_{n=0}^{infty} a_nx^n)(a)的生成函数(又叫母函数).(f(x))是一个形式幂级数。至于是有限项还是无限项在做题中影响不大,只要按照题目意义做就可以了。

    比如序列(1,2,3)的生成函数就是(1x^1+2 imes x^2+3 imes x^3)

    生成函数可以帮我们解决一些计数问题。

    有1克、2克、3克、4克的砝码各一枚,能称出哪几种重量?每种重量各有几种可能方案(选的砝码种类不同,或个数不同看成不同方案)?

    每个砝码可以选或不选,不选看成1,选看成(x^i)

    那么生成函数就是

    [egin{aligned} f(x) &=(1+x^1)(1+x^2)(1+x^3)(1+x^4)\ &=1+x+x^2+2x^3+2x^4+2x^5+2x^6+2x^7+x^8+x^9+x^{10} end{aligned} ]

    发现指数表示重量,系数表示方案数。比如(2x^6)表示凑出重量6有两种方案,分别是(x^1x^2x^3)(x^2x^4),即1g,2g,3g砝码或2g,4g砝码。因此,在用生成函数解决计数问题时,指数往往表示某种条件,而系数表示该条件下的方案数

    求用1分、2分、3分的邮票贴出不同数值的方案数

    这个问题的生成函数就是无限项的。

    (g(x)=(1+x+x^2+x^3+...)(1+x^2+x^4+x^6+...)(1+x^3+x^6+x^9+...))

    我们要求贴出数值4的方案数,那就要求出(x^4)的系数.可以根据式((1.2.2))求出

    常见的OGF

    等比数列形式

    (a={1,1,1,1,1 dots}, f(x)=1+x+x^2+x^3+dots=frac{1}{1-x} ag{2.1.1})

    证明:

    这是一个公比为(x)的等比数列求和的形式,那么(f(x)=frac{1-x^n}{1-x}),当(n o + infin)时,(x^n o 0,f(x ) o frac{1}{1-x}).因此我们可以写成(f(x)=frac{1}{1-x}),因为式子中x的取值无意义。

    同理有(f(x)=1+x^2+x^4+x^6+dots=frac{1}{1-x^2})

    (f(x)=sum_{n=0}^{infty}x^{kn}=frac{1}{1-x^{k}})

    组合数形式

    (a=1,2,3,4,5 dots , f(x)=1+x+2x^2+3x^3+dots=frac{1}{(1-x)^2} ag{2.1.2})

    证明:

    根据上面提到的多项式乘法的性质

    (egin{aligned} 1+x+2x^2+3x^3+dots&=(1+x+x^2+x^3+dots)(1+x+x^2+x^3+dots) \&=frac{1}{1-x}cdot frac{1}{1-x}=frac{1}{(1-x)^2} end{aligned})

    容易发现(1 + 3x + 6x^2 + 10x^3 + 15x^4...=frac{1}{(1-x)^3})。实际上,我们有:

    [frac{1}{(1-x)^n}=sum_{i=0}^{infty} C_{i+n-1}^{n-1} x^i (n in mathbb{N}^+) ag{2.1.3} ]

    证法一(组合意义):

    我们发现第i项系数就是从k个((1+x+x^2+x^3+dots))中每个选出一项,乘起来恰为(x^i)的方案数。那么问题就变成了(i=x_1+x_2+ dots x_k)的解的组个数。这是组合数学里插板法的经典问题。即把i个相同物品分到k个不同的盒子里面,允许盒子为空。答案是(C_{i+k-1}^{k-1})

    证法二(广义二项式定理):

    根据我们已经证明的推论((1.1.4)),

    [(x+y)^{-n}=sum_{k=0}^{infin}(-1)^k C_{n+k-1}^{n-1} x^{n-k}y^k (n in mathbb{N^+}) ag{2.1.4} ]

    [egin{aligned}frac{1}{(1-x)^n}&=(1-x)^{-n} \ &=sum_{k=0}^{infin}(-1)^k C_{n+k-1}^{n-1}(-x)^k \ &=sum_{k=0}^{infin}(-1)^k C_{n+k-1}^{n-1}x^k(-1)^k \ &=sum_{k=0}^{infin}(-1)^{2k} C_{n+k-1}^{n-1}x^kend{aligned} ag{2.1.5} ]

    显然((-1)^{2k}=1),代入式((2.1.4))

    [ herefore frac{1}{(1-x)^n}=sum_{i=0}^{infty} C_{i+n-1}^{n-1} x^i ]

    运用OGF推导数列通项

    斐波那契数列

    斐波那契数列(F)满足(F_n=F_{n-1}+F_{n-2} (n geq 3),F_1=F_2=1).

    那么它的生成函数(f(x)=x+x^2+2x^3+3x^4+5x^5 dots)

    常见套路,类似推导等比数列求和公式,错位相减

    (xf(x)=x^2+x^3+2x^4+3x^5+dots)

    (f(x)-xf(x)=x+x^3+x^4+2x^5+3x^6=x+x^2f(x))

    移项,得((x^2-x+1)f(x)=x),对(x^2-x+1)在实数范围内因式分解,那么

    [f(x)=frac{x}{x^2-x+1}=frac{x}{(1-frac{1-sqrt{5}}{2}x)(1-frac{1+sqrt{5}}{2}x)} ag{2.2.1} ]

    注意到$$ frac{1}{(1-frac{1+sqrt{5}}{2}x)}-frac{1}{(1-frac{1-sqrt{5}}{2}x)}=frac{sqrt{5}x}{(1-frac{1-sqrt{5}}{2}x)(1-frac{1+sqrt{5}}{2}x)}$$

    [egin{aligned} herefore f(x)&= frac{1}{sqrt{5}} [ frac{1}{(1-frac{1+sqrt{5}}{2}x)}-frac{1}{(1-frac{1-sqrt{5}}{2}x)}] \ &= -frac{1}{sqrt5}frac{1}{(1-frac{1-sqrt5}{2}x)} + frac{1}{sqrt5}frac{1}{(1-frac{1+sqrt5}{2}x)}end{aligned} ag{2.2.2} ]

    注意到((1-frac{1-sqrt5}{2}x))很像我们刚刚提到的等比数列形式中,(f(x)=frac{1-x^n}{1-x}=frac{1}{1-x})的形式,那么生成函数中的公比就是(frac{1-sqrt5}{2}x).

    写回数列形式:

    [F_n= -frac{1}{sqrt5}(frac{1-sqrt5}{2})^n + frac{1}{sqrt5}(frac{1+sqrt5}{2})^n ag{2.2.3} ]

    卡特兰数

    卡特兰数的定义如下(c_n=sum_{i=0}^{n-1} c_ic_{n-i-1},c_0=c_1=1)

    生成函数(g(x)=c_0+c_1x+c_2x^2+ c_3x^3 +dots)

    [egin{aligned} g(x)cdot g(x)&=c_0^2+(c_0c_1+c_1c_0)x+(c_0c_2+c_1c_1+c_2c_0)x^2+dots\ &=c_1+c_2x+c_3x^2+dots \ &=frac{g(x)-c_0}{x} \ &= frac{g(x)-1}{x}end{aligned} ]

    ( herefore x[g(x)]^2-g(x)+1=0)

    (g(x))看作未知数,由求根公式得

    (g(x)=frac{1pm sqrt{1-4x}}{2x})

    (g(x)=frac{1+sqrt{1-4x}}{2x})时,我们把分子有理化,根式乘到分母(这是检验的一般套路)

    (g(x)=frac{4x}{2x(1-sqrt{1-4x})}=frac{2}{1-sqrt{1-4x}})

    (x=0)的时候分母为0,无意义,因此这个根舍去

    同理检验另一个根,发现只有(g(x)=frac{1-sqrt{1-4x}}{2x})满足条件。

    [ herefore g(x)=frac{1}{2x}[1-(1-4x)^{frac{1}{2}}] ag{2.2.4} ]

    根据广义二项式定理((1.1.2))

    [egin{aligned}(1-4x)^{frac{1}{2}} &= sum_{k=0}^{infty} C_{frac{1}{2}}^k (-4x)^k \ &=sum_{k=0}^{infty} C_{frac{1}{2}}^k (-1)^k2^{2k}x^kend{aligned} ag{2.2.5} ]

    注意我们讨论组合数的时候最好分(k=0)(k>0)两种情况讨论,否则中间过程中可能会出现((-1)!)之类的情况

    (k=0)(C_{frac{1}{2}}^k (-1)^k2^{2k}x^k=1) (根据定义式((1.1.1))得$ forall x in mathbb{R},C_{x}^0=1$)

    [egin{aligned} C_{frac{1}{2}}^{k}&= frac{frac{1}{2}(frac{1}{2}-1)(frac{1}{2}-2) dots (frac{1}{2}-k+1)}{k!}\ &=(-1)^{k-1} frac{frac{1}{2} imes frac{1}{2} imes frac{3}{2} imes frac{5}{2} cdots frac{2k-3}{2}}{k!} \ &=(-1)^{k-1} frac{1 imes 1 imes 3 imes 5 imes dots (2k-3)}{2^kk!} \ &=(-1)^{k-1} frac{frac{1 imes 2 imes 3 imes 4 imes 5 imes dots (2k-2)}{2 imes 4 imes 8 imes dots (2k-2)}}{2^kk!} \ &= (-1)^{k-1}frac{frac{(2k-2)!}{2^{k-1}(k-1)!}}{2^kk!} \ &=frac{(-1)^{k-1}}{2^{2k-1}} cdot frac{(2k-2)!}{k!(k-1)!} \ &=frac{(-1)^{k-1}}{2^{2k-1}} cdot frac{1}{k} cdot frac{(2k-2)}{(k-1)!(k-1)!} \ &=frac{(-1)^{k-1}}{2^{2k-1}} cdot frac{1}{k}cdot C_{2k-2}^{k-1} end{aligned} ag{2.2.6} ]

    代入((2.2.5)),得

    [egin{aligned}(1-4x)^{frac{1}{2}} &= 1+sum_{k=1}^{infty} C_{frac{1}{2}}^{k} (-1)^k 2^{2k} x^k\ &=1+sum_{k=1}^{infty} frac{(-1)^{k-1}}{2^{2k-1}} cdot frac{1}{k}cdot C_{2k-2}^{k-1} cdot (-1)^k 2^{2k} x^k \ &=1+sum_{k=1}^{infty}(-1) imes 2 imes frac{1}{k} C_{2k-2}^{k-1}x^k \ &= 1-2sum_{k=1}^{infty} frac{1}{k} C_{2k-2}^{k-1}x^kend{aligned} ag{2.2.7} ]

    代入((2.2.4))

    [egin{aligned} g(x) &=frac{1}{2x}[1-(1-4x)^{frac{1}{2}}] \ &= frac{1}{2x} (2sum_{k=1}^{infty} frac{1}{k} C_{2k-2}^{k-1}x^k) \ &= sum_{k=1}^{infty} frac{1}{k} C_{2k-2}^{k-1} x^{k-1}end{aligned} ag{2.2.8} ]

    注意到(x^{k-1})的系数是(frac{1}{k} C_{2k-2}^{k-1}),那么(x^k)的系数就是(frac{1}{k+1} C_{2k}^{k})

    因此第(n)项的系数为(frac{C_{2n}^n}{n+1})

    卡特兰数的通项公式为:

    [c_n=frac{C_{2n}^{n}}{n+1} ag{2.2.9} ]

  • 相关阅读:
    [洛谷P2523] HAOI2011 Problem c
    [CF156D] Clues
    [洛谷P4769] NOI2018 冒泡排序
    [CF605E] Intergalaxy Trips
    [洛谷P4492] HAOI2018 苹果树
    [洛谷P3349] ZJOI2016 小星星
    [洛谷P4336] SHOI2016 黑暗前的幻想乡
    [洛谷P5364] SNOI2017 礼物
    [洛谷P2606] ZJOI2010 排列计数
    [洛谷P6078] CEOI2004 candy
  • 原文地址:https://www.cnblogs.com/birchtree/p/11575252.html
Copyright © 2011-2022 走看看