写在前面

分析求解一道组合数学的经典问题——格点路径问题,以及其母函数形式导出。

例题

设m,n∈Zm,\,n\in\mathbb{Z}m,n∈Z,am,na_{m,\,n}am,n​是从格点(0,0)(0,\,0)(0,0)到格点(m,n)(m,\,n)(m,n)的路径数,但要求路径中的每一步只允许以下三种走法:

  • R:(x,y)→(x+1,y)R\,:\,(x,\,y)\to(x+1,\,y)R:(x,y)→(x+1,y) ;
  • U:(x,y)→(x,y+1)U\,:\,(x,\,y)\to(x,\,y+1)U:(x,y)→(x,y+1) ;
  • D+:(x,y)→(x+1,y+1)D^+\,:\,(x,\,y)\to(x+1,\,y+1)D+:(x,y)→(x+1,y+1) ;

试求序列{am,n}m,n⩾0\{a_{m,\,n}\}_{m,\,n\geqslant0}{am,n​}m,n⩾0​的普通型母函数F(x,y)F(x,\,y)F(x,y).

分析及求解

不妨设m⩾nm\geqslant nm⩾n,则从格点(0,0)(0,\,0)(0,0)到格点(m,n)(m,\,n)(m,n)的路径数为三元集S={U,R,D+}S=\{U,\,R,\,D^+\}S={U,R,D+}的重排列。

下面进行分类计数。

将路径以含有kkk个UUU步(向上步)分类,则必有n−kn-kn−k 个D+D^+D+步,m−(n−k)m-(n-k)m−(n−k)个RRR步,即重集
{k⋅U,(n−k)⋅R,(m−n+k)⋅D+}\big\{k\cdot U,\,(n-k)\cdot R,\,(m-n+k)\cdot D^+\big\} {k⋅U,(n−k)⋅R,(m−n+k)⋅D+}
的全排列数,所以直接得
am,n=∑k=0n(m+kk,n−k,m−n+k)=∑k=0n(m+km)(mn−k),a_{m,\,n}=\sum_{k=0}^n\binom{m+k}{k,\,n-k,\,m-n+k}=\sum_{k=0}^n\binom{m+k}{m}\binom{m}{n-k}, am,n​=k=0∑n​(k,n−k,m−n+km+k​)=k=0∑n​(mm+k​)(n−km​),
于是序列{am,n}m,n⩾0\{a_{m,\,n}\}_{m,\,n\geqslant0}{am,n​}m,n⩾0​的普通型母函数F(x,y)F(x,\,y)F(x,y)为
F(x,y)=∑m⩾0∑n⩾0am,nxmyn=∑m⩾0∑n⩾0∑k=0n(m+km)(mn−k)xmyn=∑m⩾0∑k⩾0(m+km)[∑n⩾k(mn−k)yn]xm=∑m⩾0∑k⩾0(m+km)[∑n⩾k(mn−k)yn−k]xmyk=∑m⩾0xm(1+y)m[∑k⩾0(m+kk)yk]=∑m⩾0xm(1+y)m[∑k⩾0(m+k)(m+k−1)⋯(m+1)k!yk]=∑m⩾0xm(1+y)m[∑k⩾0(−m−k)(−m−k+1)⋯(−m−1)k!(−y)k]=∑m⩾0xm(1+y)m(1−y)−m−1=11−y∑m⩾0(x+xy1−y)m=11−y⋅11−x+xy1−y=11−y−x−xy\begin{aligned} F(x,\,y) &=\sum_{m\geqslant 0}\sum_{n\geqslant 0}a_{m,\,n}x^my^n\\ &=\sum_{m\geqslant 0}\sum_{n\geqslant 0}\sum_{k=0}^{n}\binom{m+k}{m}\binom{m}{n-k}x^my^n\\ &=\sum_{m\geqslant 0}\sum_{k\geqslant 0}\binom{m+k}{m}\Bigg[\sum_{n\geqslant k}\binom{m}{n-k}y^n\Bigg]x^m\\ &=\sum_{m\geqslant 0}\sum_{k\geqslant 0}\binom{m+k}{m}\Bigg[\sum_{n\geqslant k}\binom{m}{n-k}y^{n-k}\Bigg]x^my^k\\ &=\sum_{m\geqslant 0}x^m(1+y)^m\Bigg[\sum_{k\geqslant 0}\binom{m+k}{k}y^k\Bigg]\\ &=\sum_{m\geqslant 0}x^m(1+y)^m\Bigg[\sum_{k\geqslant 0}\frac{(m+k)(m+k-1)\cdots(m+1)}{k!}y^k\Bigg]\\ &=\sum_{m\geqslant 0}x^m(1+y)^m\Bigg[\sum_{k\geqslant 0}\frac{(-m-k)(-m-k+1)\cdots(-m-1)}{k!}(-y)^k\Bigg]\\ &=\sum_{m\geqslant 0}x^m(1+y)^m(1-y)^{-m-1}\\ &=\frac{1}{1-y}\sum_{m\geqslant 0}\bigg(\frac{x+xy}{1-y}\bigg)^m\\ &=\frac1{1-y}\cdot\frac1{1-\frac{x+xy}{1-y}}\\ &=\frac1{1-y-x-xy} \end{aligned} F(x,y)​=m⩾0∑​n⩾0∑​am,n​xmyn=m⩾0∑​n⩾0∑​k=0∑n​(mm+k​)(n−km​)xmyn=m⩾0∑​k⩾0∑​(mm+k​)[n⩾k∑​(n−km​)yn]xm=m⩾0∑​k⩾0∑​(mm+k​)[n⩾k∑​(n−km​)yn−k]xmyk=m⩾0∑​xm(1+y)m[k⩾0∑​(km+k​)yk]=m⩾0∑​xm(1+y)m[k⩾0∑​k!(m+k)(m+k−1)⋯(m+1)​yk]=m⩾0∑​xm(1+y)m[k⩾0∑​k!(−m−k)(−m−k+1)⋯(−m−1)​(−y)k]=m⩾0∑​xm(1+y)m(1−y)−m−1=1−y1​m⩾0∑​(1−yx+xy​)m=1−y1​⋅1−1−yx+xy​1​=1−y−x−xy1​​

主要方法

上面的推导过程主要利用求和换序(需要注意变量的依赖关系)、广义牛顿二项式定理,由此即得结论。

广义牛顿二项式定理

(x+y)α=∑k=0∞(αk)xα−kyk,(x+y)^\alpha=\sum_{k=0}^{\infty} {\binom{\alpha}{k}x^{\alpha-k}y^{k}}, (x+y)α=k=0∑∞​(kα​)xα−kyk,

其中
(αk)=α(α−1)…(α−k+1)k!=(α)kk!,\binom{\alpha}{k}=\frac{\alpha(\alpha-1) \ldots(\alpha-k+1)}{k !}=\frac{(\alpha)_{k}}{k !}, (kα​)=k!α(α−1)…(α−k+1)​=k!(α)k​​,
这里α∈R\alpha\in\mathbb{R}α∈R.

(组合数学笔记)格点路径问题分析求解相关推荐

  1. 最大熵学习笔记(六)优缺点分析

    生活中我们经常听到人们说"不要把鸡蛋放到一个篮子里",这样可以降低风险.深究一下,这是为什么呢?其实,这里边包含了所谓的最大熵原理(The Maximum Entropy Prin ...

  2. (组合数学笔记)Pólya计数理论_Part.10_Pólya定理的推广——De Bruijn定理的母函数形式

    文章目录 写在前面 引入 模式清单 引理1 引理2 母函数型的De Bruijn定理 定理的特殊情况 XXX上没有置换群 YYY上没有置换群 X,YX,\,YX,Y上均没有置换群 例题 分析 写在前面 ...

  3. python常用模块用法_python笔记之常用模块用法分析

    python笔记之常用模块用法分析 内置模块(不用import就可以直接使用) 常用内置函数 help(obj) 在线帮助, obj可是任何类型 callable(obj) 查看一个obj是不是可以像 ...

  4. Apache Nutch 1.3 学习笔记十(插件机制分析)

    1. 一些对象说明 PluginRepository:这是一个用于存储所有插件描述对象(PluginDescriptor),插件扩展点(ExtensionPoint)和被激活的插件. PluginDe ...

  5. 第七章:小朱笔记hadoop之源码分析-hdfs分析 第四节:namenode-LeaseManagerMonitor

    第七章:小朱笔记hadoop之源码分析-hdfs分析 第四节:namenode分析 4.4 namenode文件租约分析LeaseManagerMonitor 文件租约就是将操作的文件和操作它的客户端 ...

  6. 第七章:小朱笔记hadoop之源码分析-hdfs分析 第三节:hdfs实现分析

    第七章:小朱笔记hadoop之源码分析-hdfs分析 第三节:hdfs实现分析 3.3 namenode (1)FSDirectory FSDirectory用来管理HDFS整个文件系统的namesp ...

  7. 第七章:小朱笔记hadoop之源码分析-hdfs分析 第四节:namenode分析-namenode启动过程分析...

    第七章:小朱笔记hadoop之源码分析-hdfs分析 第四节:namenode分析 4.1 namenode启动过程分析 org.apache.hadoop.hdfs.server.namenode. ...

  8. 第七章:小朱笔记hadoop之源码分析-hdfs分析 第五节:Datanode 分析

    第七章:小朱笔记hadoop之源码分析-hdfs分析 第五节:Datanode 分析 5.1 Datanode 启动过程分析 5.2 Datanode 心跳分析 5.3 Datanode 注册分析 5 ...

  9. tensorflow笔记:多层CNN代码分析

    tensorflow笔记系列:  (一) tensorflow笔记:流程,概念和简单代码注释  (二) tensorflow笔记:多层CNN代码分析  (三) tensorflow笔记:多层LSTM代 ...

最新文章

  1. 深度学习之好的博客文章
  2. python数值运算答案_笨方法学Python 习题3:数字和数学计算
  3. What Are You Talking About
  4. Lindström–Gessel–Viennot lemma
  5. php 剪贴板,之Windows中的剪贴板
  6. 乐高机器人亮剑_2500名选手大比拼 全球机器人广州从化“亮剑”
  7. 无盘XP系统全套安装说明
  8. 创建struct fib_info
  9. 4 谐波_谐波的基础知识
  10. java并发:interrupt进程终止
  11. sqlmap md5怎么解密_三十九,hackthebox渗透之DirBuster扫描路径及Sqlmap
  12. linux telnet命令不可用的解决办法
  13. java ssh架构_JAVA SSH 框架介绍(转)
  14. 加速度传感器和角度传感器
  15. 数码管动态扫描显示程序内消影流程
  16. 苹果电脑系统重装 —— U盘操作
  17. 虚拟机主机服务器出现SSH已启用,ESXi去掉 SSH已经启用的警告信息
  18. python图书搜索与书籍封面下载
  19. python随机生成英文字符串_如何用Python语言生成随机字符串 | 学步园
  20. 项目经理(Project Manager)和产品经理(Product Manager),简称PM。

热门文章

  1. ubuntu emacs的安装
  2. 微信授权获取用户openid前端实现
  3. Prime Time UVA - 10200
  4. Linux以下基于TCP多线程聊天室(client)
  5. 【原创】记一次HttpWebRequest中国移动查账单爬虫的攻克历程
  6. ASP.NET页面之间传值Session(2)
  7. 动态规划——环形子数组的最大和(Leetcode 918)
  8. C语言课后习题(51)
  9. Java Web-网页基础-HTML-URL
  10. android listview的理解,Android ListView的理解