当前课程知识点:组合数学 > 神奇的序列 > Catalan数 > Catalan数的各种实例
刚才我们已经通过不同的方法
求得了卡特兰数的直接表达式
实际上卡特兰数的直接表达式
有很多种不同的构造方法
光维基百科上就可以看到
至少5种证法
那么为什么我们会说
卡特兰数是一个精灵呢
因为啊它无处不在
它变换成世界上各种不同的问题
比如说刚才我们
已经给大家介绍了栈 二叉树
以及三角划分等等
都是对应着卡特兰数
而实际上还有更多更多的问题
比如说我们举例来看
对于这样一个三角划分
我们同样可以把它转化成
对应的一个表达式的加括号的问题
那么这时候就会有一个问题了
如果我们的表达式把
括号去掉会怎么样呢
我们看一个例子
这是一个非常常见的
一个进行加减乘除的表达式
由于有了括号
我们可以很容易地计算出
它的结果是什么
但是如果我们把所有的
括号都去掉呢
这时候我们只剩下了
加减乘除和相应的数字
这时候它就会有
各种不同的语义结果
如果不考虑相互的运算顺序的话
以及优先级的话
那么它可以有各种不同的
根据不同的括号得到不同的结果
这就存在一个问题
对应于我们在计算机
进行形式化验证
以及进行多项式的行为分析的时候
括号起到了非常重要的作用
那么就有一个经典的问题
我们对应于这样一个表达式
它的括号有多少种不同的
组合方式呢
实际上这个问题也就是
一个卡特兰数问题
我们可以用Cn来表示长度为
2n的这样一个对应的括号
当然这个括号的表示我们
同样呢可以用其他的方式
我们不一定是用方括号 圆括号
我们甚至可以用XY来进行表示
其实这样一个问题同样有
一个专有的名字
它被称为是Dyck Word
也就是我们如果用XY来
分别表示左括号和右括号的话
那么我们要找到一个合理的
括号方式的话
意味着XY XY进行排列的时候
有一个规则
也就是我对应的左边这个X
它开始的时候
到某一个部分结束
这时候左边的X的个数不能少于
这时候出现的Y的个数
也就是我括号括过去
最后不能右括号比左括号还多
所以这个问题仍然可以
对应于格路问题
不超过对角线
那么这个问题在计算机界
也非常有用
因为有一种形式化语言
被称为是Dyck Language
它就是在数学 计算机以及
语言学中的一种形式语言
它就是用不同的括号的
表示方法来进行语言的描述
这里面我们就知道了对应于
括号的这种枚举方式
它的个数就是卡特兰数
而同时我们还曾经有
一部很经典的电影
也就是一部爱情的片子
它叫做《Hands Across the Table》
虽然说这个名字可能只是
一个爱情故事
但它呢实际上是一个
经典的组合问题
为什么这样说呢
比如说我们大家n个人
在圆桌上进行吃饭
那么有可能大家要相互打招呼吧
那么如果相互两两之间
想要握手的话
就存在一个问题
会不会几个人相互一握手
就打交叉了呢
那这是一个非常尴尬的情况
因此我们希望这么多人围坐圆桌
进行相互握手的时候
彼此之间不能进行交叉
这就是一个Hands across the table的问题
那么请问这样一个问题又有多少种
不同的方案数呢
大家可能也猜到了
它的答案同样是卡特兰数
实际上在二十世纪的刚开始的时候
大家已经开始逐渐去寻找
不同类型的问题
对应的都是卡特兰数的结果
而有一位博士在他的博士论文中
就找到了一共有31种不同的问题
对应的都是卡特兰数的结果
而最新的研究
截止到2010年8月份
我们的斯坦利教授
一共列出了有190种不同的问题
它们的答案都是卡特兰数
所以说卡特兰数就是一个精灵
存在在我们世间的每一个角落里
-什么是组合数学
--什么是组合数学
--讨论题
-最精巧的排列——幻方
--幻方
-漫谈组合数学--最精巧的排列——幻方
-苦难的羊皮纸卷
--羊皮纸卷
-苦难的羊皮纸卷--作业
-你的手机密码安全吗
-漫谈组合数学--你的手机密码安全吗
-暴力枚举和抽象转换
--世界杯引出的问题
--世界杯引出的问题--练习
--一一对应
--七桥问题
--小结
--讨论题
-大家谈组合数学(1)
--采访武永卫老师
-第一周作业
--作业说明
--H
--U
--G
--作业讨论区说明
-第一周演示程序
--程序讨论区说明
--幻方生成器
--换方计数
--屏幕解锁方案数
--欧拉路计数
--共享程序
-加减乘除来计数
--计数的基本法则
-排列还是组合
--排列还是组合
--小乒乓球的组合之旅--排列还是组合
-各种各样的排列
--圆排列和项链排列
--圆排列和项链排列--习题
--多重排列
--多重排列--练习
-多样的组合
--可重组合
--不相邻组合
--小乒乓球的组合之旅--多样的组合
-钟声里的全排列
--钟声里的全排列
--钟声里的全排列
--字典序法
--SJT算法
-第二周作业
--H
--U
--G
--思考题
--公式测试
--作业讨论区说明
-第二周演示程序
--程序讨论区说明
--全排列生成
--组合生成器
--共享程序
-参考资料:Stirling估计式
-母函数是函数的母亲吗
--母函数的定义(1)--练习
--母函数的定义(2)--练习
-母函数的简单应用
--初识母函数--母函数的简单应用
-整数拆分
--整数拆分(1)
--整数拆分(2)
-Ferrers图像
--Ferrers图像--作业
-母函数与递推关系
--母函数能做什么
--偶数个5怎样算
--母函数小结
-大家谈组合数学(2)
-第三周作业
--H
--U
--G
--思考题
--作业讨论区说明
-第三周演示程序
--程序讨论区说明
--整数拆分
--汉诺塔
--共享程序说明
-Fibonacci数列
--线性常系数递推关系--Fibonacci数列
-Fibonacci数列的应用
--桌布魔术
--桌布魔术--练习
--艾略特波浪曲线
-线性常系数齐次递推关系
--定义
--特征多项式
--线性常系数递推关系--线性常系数齐次递推关系
-说“数”解题
-第四周作业
--H
--U
--G
--GT思考题
--作业讨论区说明
-第四周演示程序
--程序讨论区说明
--程序共享说明
-爆笑花絮
--爆笑花絮
-参考资料:K线分析中的Fibonacci 相关理论
-Catalan数
--计算机界的精灵
--神奇的序列--Catalan数
-指数型母函数
--指数型母函数
--神奇的序列--指数型母函数
-错排
--错排1
--错排2
--神奇的序列--错排
-Stirling数
--神奇的序列--Stirling数
-母函数小结
--母函数小结
-大家谈组合数学(3)
-第五周作业
--H
--U
--G
--思考题
--作业讨论区说明
-第五周演示程序
--讨论区说明
--Catalan数
--程序共享
-且容且斥
--容斥原理
--容斥原理的证明
--容斥原理和鸽巢原理--且容且斥
-容斥原理的精妙
-回忆过去,容斥新解
--容斥原理和鸽巢原理--回忆过去,容斥新解
-鸽子抢巢
--鸽巢原理
--鸽巢原理--练习
--鸽巢原理的应用(1)--练习
-看得见摸得着的鸽巢
--韩信点兵
--中国剩余定理
--容斥原理和鸽巢原理--看得见摸得着的鸽巢
-6人行和Ramsey数
--6人行
--Ramsey数
--小结
-第六周作业
--H
--U
--G
--GT
--作业讨论区说明
-第六周演示程序
--讨论区说明
--程序共享说明
-可以转的世界
--可以转的世界
--可以转的世界--练习
--伽罗华与群
--群的定义
--群的定义--练习
--群的一些概念
-置换群
--置换群
--群--置换群
--共轭类
--对换
--对换--练习
--置换群的应用
-Burnside引理
--着色问题的等价类
--Burnside引理--作业
-闲话群
-第七周作业
--H
--U
--G
--作业讨论区说明
-Burnside引理的困境
-从Burnside到Polya
--Polya定理
-立方体旋转
--立方体旋转(1)
--立方体旋转(2)
--立方体旋转--作业
--立方体旋转(3)
--立方体旋转--作业
--立方体旋转(4)
-母函数型Polya定理
--Polya定理--母函数型Polya定理
-图的计数
--图的计数
-总结
--本章小结
-第八周作业
--H
--U
--G
--GT
--作业讨论区说明
-大家谈组合数学(4)
--采访黄连生老师
-组合之美
--组合之美之计数
-组合之美之线性常系数递推关系
-组合之美之多样的序列
-组合之美之鸽巢原理
-组合之美之转动群与染色
-采访邹欣
--采访邹欣1
--采访邹欣2
-知识点串串烧
--知识点串串烧
-期末测验--期末测验