• 生成函数学习笔记


    生成函数即为母函数

    设${a_n}$是任一数列,则形式幂级数$A(t)=sum_{i=0}^{∞}a_it^i$叫做数列${a_n}$的常生成函数

    引理 1 

        以$M_k (k= 1, 2, ⋯, n)$表示不定方程 $x_1+ x_2+ x_3+ ⋯+ x_n= r$ 中的未知数 $x_k$ 的可取值所成之集

        以 $a_r$ 表示不定方程 $x_1+ x_2+ x_3+ ⋯+ x_n= r$ 满足条件 $x_k∈M_k (k= 1, 2, ⋯, n)$的解的个数

        则 $a_r$ 是$A (t) = prod_{k= 1}^n sum _{p ∈M_k}t^p$展开式中 $t^r$ 的系数

    引理 2 

        设m 是任一有理数, 则对形式幂级数$A (t) = 1+ at(a≠0)$有 $(1+ at)^m =sum_{i=0}^{∞}dbinom{m}{i}a^it^i$

        特别地有$(1-t)^{-n}=sum_{i=1}^{∞}dbinom{k+i-1}{i}t^i$

        关于上式的证明:

        $n=1$时换元$k=x^{-1}$,右边取一下数列的极限即可得到左边。然后对左右分别求n阶导数即得证

    ​       或者直接泰勒展开大概也可以

    定理1

    不定方程$x_1+x_2+x_3+...+x_n=r$的非负整数解的个数为$dbinom{n+r-1}{n-1}$

    证明:构造函数$A(t)=(t^0+t^1+...)(t^0+t^1+...)...(t^0+t^1+...)$,显然解的个数为$t_r$的系数

    $=(t^0+t^1+t^2+...)^n$

    设$p=t^0+t^1+t^2+...$,有$p=1+pt$,那么$p=frac{1}{1-t}$

    $p^n=(t^0+t^1+t^2+...)^n=(frac{1}{1-t}^n)=sum_{i=0}^{∞}dbinom{n+i-1}{i}t^i$

    那么$t_r$的系数即为$dbinom{n+r-1}{r}=dbinom{n+r-1}{n-1}$

    定理2

    不定方程$x_1+x_2+x_3+...+x_n=r$的正整数解的个数为$dbinom{r-1}{n-1}$

    证明:构造函数$A(t)=(t^1+t^2+...)^n$,显然解的个数为$t_r$的系数

    设$p=t^1+t^2+...$,有$p=t+tp$,那么$p=frac{t}{1-t}$

    $p^n=(t^1+t^2+...)^n=t^nsum_{i=0}^{∞}dbinom{n+i-1}{i}t^i$

    其中$t^r$的系数为$dbinom{r-1}{r-n}=dbinom{r-1}{n-1}$

    定理3

    不定方程$x_1+x_2+x_3+...+x_n=r$满足条件$x_i>=k_i(k_i∈N^*,i=1,2,3...)$的非负整数解的个数为$dbinom{n+r-sum_{i=1}^{n}k_i-1}{n-1}$

    证明:我们令$y_i=x_i-k_i$,问题转化为了定理1,套用定理1的公式即可解决

    定理4

    不定方程$x_1+x_2+x_3+...+x_n=r$满足条件$x_i<=k(i=1,2,3...)$的非负整数解的个数为$dbinom{n+r-1}{n-1}-sum_{j=1}^{n} (-1)^j dbinom{n}{j} dbinom{n+r-jk-1}{n-1}$

    证明:在定理3的基础上容斥一下即可,即$ans=$总方案数-一个不满足条件其他任意+两个不满足条件其他任意...当然这个也可以靠生成函数,$A(t)=(t^0+t^1+...t^k)^n$,方案数就是$t^r$的系数

    例题1:

    不定方程$x_1+x_2+x_3+...+x_n=r$满足条件$x_i<=k$且$x_1+x_n<=k$的非负整数解的个数

    构造生成函数$A(t)=(t^0+t^1+...+t^k)^{n-2}((t^0+t^1+...+t^k)^2mod t^{k+1})$,方案数即为$t^r$的系数

    进一步化简得到$A(t)=(sum_{i=0}^{k}t_i)^{n-2}(sum_{i=0}^{k}(i+1)x_i)$

  • 相关阅读:
    Unity5.0 手动激活
    日文“表” php 会报错
    U3D 精灵的点击监听
    Android 数据库ORM框架GreenDao学习心得及使用总结<一>
    Eclipse 打包过滤 Log.e
    Android SQLite系列
    Android Material Design调色板
    Android Studio系列教程六--Gradle多渠道打包
    Android 模块化编程之引用本地的aar
    使用 Chrome 来调试你的 Android App
  • 原文地址:https://www.cnblogs.com/xxzh/p/10597091.html
Copyright © 2020-2023  润新知