博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
生成函数学习笔记
阅读量:4914 次
发布时间:2019-06-11

本文共 1833 字,大约阅读时间需要 6 分钟。

生成函数即为母函数

设${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^n\sum_{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)^2\mod t^{k+1})$,方案数即为$t^r$的系数

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

转载于:https://www.cnblogs.com/xxzh/p/10597091.html

你可能感兴趣的文章
HTTP协议详解
查看>>
xdebug调试的原理
查看>>
php 日期时间运算比较
查看>>
C#类、接口、虚方法和抽象方法
查看>>
Linq C#增删改查
查看>>
[转]第一章 Windows Shell是什么 【来源:http://blog.csdn.net/wangqiulin123456/article/details/7987862】...
查看>>
iOS获取设备UUID和IDFA
查看>>
模糊查询
查看>>
linux 出现:-bash-3.2$提示符
查看>>
jsp电子商务 购物车实现之二 登录和分页篇
查看>>
科普:搜索引擎的基本工作原理
查看>>
Docker Compose 原理
查看>>
mongodb index 的background 及集群的索引建立
查看>>
判断两个控件在同一个Window上是否有重叠
查看>>
Android+Jquery Mobile学习系列(3)-创建Android项目
查看>>
android:inputType参数类型说明
查看>>
android 抽屉式滑动demo
查看>>
Swift语言Storyboard教程:第一部分
查看>>
unload事件Ajax提交问题
查看>>
代码工程flex不显示GIF图片问题
查看>>