特殊计数序列——Catalan数
Catalan数
前10项
\(1,1,2,5,14,42,132,429,1430,4862\)
(注:从第\(0\)项起)
计算式
- \(C_n=\frac{1}{n+1}\dbinom{2n}{n}\)
- \(C_{n+1}=\sum_{i=0}^nC_iC_{n-i}\)
- \(C_n=\dbinom{2n}{n}-\dbinom{2n}{n-1}\)
- \(C_n=\frac{4n-2}{n+1}C_{n-1}\)
组合意义
1、由\(n\)个\(+1\)和\(n\)个\(-1\)构成的\(2n\)项序列中,满足\(\forall k\in[1,2n],\sum_{i=1}^ka_i\geq 0\)的序列数量
大家都知道结论:\(C_n=\frac{1}{n+1}\dbinom{2n}{n}\),在这里给出证明
考虑从相反的方面进行考虑,即用总序列数\(\dbinom{2n}{n}\)减去不合法的序列数
对于每一个不合法的序列,必定存在一个最小的\(k\)使得\(\sum_{i=1}^k a_i<0\),也就是有\(\sum_{i=0}^{k-1}a_i=0\)且\(a_k=-1\)
很明显\(k\)是奇数
考虑将前\(k\)项取相反数,那么该序列变成了一个含有\(n+1\)个\(+1\)和\(n-1\)个\(-1\)的序列,容易知道一个不合法的原序列只会对应一个新序列
同理,在新序列中一定会存在一个\(k\)使得\(\sum_{i=0}^ka_i=1\),此时再一次取前\(k\)项的相反数,又会得到一个不合法的原序列
因此不合法的序列和新序列是一一映射的关系,而新序列的总数也就是\(\dbinom{2n}{n-1}\)
于是最终答案就是\(\dbinom{2n}{n}-\dbinom{2n}{n-1}=\frac{1}{n+1}\dbinom{2n}{n}\)
由这一条组合意义可以引申出许多本质一样的组合意义
- 在网格图上从\((0,0)\)走到\((n,n)\),每次只走一个单位长度,不走回头路,且不穿过(可碰到)直线\(y=x\)的方案数。(向右:\(+1\),向上:\(-1\))
- \(2n\)个人排队买票,票价5角,有\(n\)个人持有1元硬币,另\(n\)个人持有\(5\)角硬币,求不使用额外的\(5\)角钱的排队方案(\(5\)角:\(+1\),\(1\)元:\(-1\))
2、凸\(n+1\)边形被其内部不相交的对角线划分成三角形区域的方案数
这是上面的第二个式子\(C_{n+1}=\sum_{i=0}^nC_iC_{n-i}\),我们有\(f_n=\sum_{i=2}^{n-1}f_if_{n-i-1}\),故\(f_n=C_{n+2}\)
类似的还有
- \(n\)个节点的不同的二叉树,考虑在中序遍历中根节点的位置即可
3、其它
本质上和第一点是相同的,关键是对偶数位置的转化
特殊计数序列——Catalan数的更多相关文章
- Catalan数,括号序列和栈
全是入门的一些东西.基本全是从别处抄的. 栈: 支持单端插入删除的线性容器. 也就是说,仅允许在其一端加入一个新元素或删除一个元素. 允许操作的一端也叫栈顶,不允许操作的一端也叫栈底. 数个箱子相叠就 ...
- [Catalan数]1086 栈、3112 二叉树计数、3134 Circle
1086 栈 2003年NOIP全国联赛普及组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description 栈是计算机中 ...
- Catalan数 && 【NOIP2003】出栈序列统计
令h(1)=1, h(0)=1,catalan数满足递归式: h(n)=h(0)*h(n-1)+h(1)*h(n-2)+...+h(n-1)h(0) (n>=2) =C(2n, n)/(n+1) ...
- 卡特兰数 Catalan数 ( ACM 数论 组合 )
卡特兰数 Catalan数 ( ACM 数论 组合 ) Posted on 2010-08-07 21:51 MiYu 阅读(13170) 评论(1) 编辑 收藏 引用 所属分类: ACM ( 数论 ...
- 【集训笔记】【大数模板】特殊的数 【Catalan数】【HDOJ1133【HDOJ1134【HDOJ1130
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3324 http://blog.csdn.net/xymscau/artic ...
- Catalan数应用整理
应用一: codevs 3112 二叉树计数 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 一个有n个结点的二叉树总共有 ...
- 【64测试20161112】【Catalan数】【数论】【扩展欧几里得】【逆】
Problem: n个人(偶数)排队,排两行,每一行的身高依次递增,且第二行的人的身高大于对应的第一行的人,问有多少种方案.mod 1e9+9 Solution: 这道题由1,2,5,14 应该想到C ...
- Catalan数
先看2个问题: 问题一: n个元素进栈(栈无穷大),进栈顺序为1,2,3,....n,那么有多少种出栈顺序? 先从简单的入手:n=1,当然只有1种:n=2,可以是1,2 也可以是2,1:那么有2种: ...
- catalan数及笔试面试里那些相关的问题(转)
一.catalan数由来和性质 1)由来 catalan数(卡塔兰数)取自组合数学中一个常在各种计数问题中出现的数列.以比利时的数学家欧仁·查理·卡塔兰 (1814–1894)命名. 卡塔兰数的一般项 ...
随机推荐
- PHP类和函数注释大全
每次要用PHP的某个功能的时候,都要去查一下,于是决定将PHP所有类和函数都整理出来,加上注释 大致实现 将php.jar文件解压,取出目录stubs 将stubs中的所有php文件中的注释去掉,并做 ...
- AspNetCore 中使用 InentityServer4(2)
基于上一篇文章 实现对IdnetityServer4 服务的使用 1:添加接口解决方案,并且使接口受认证服务的保护: 首先在解决方案中添加Api项目如下图所示: 在API项目中添加Nuget 引用 如 ...
- .Net学前入门
概念:.NET和C# .NET/dotnet:一般指.Net Framework框架,是一种平台,一种技术: .net由.net平台以及.Net Framework框架组成,我们可以把.net平台比喻 ...
- 关于jQuery中的选择器
1:选择器的作用 获取网页的上面的标签元素等等,然后对他进行一些列的操作(添加样式,添加行为...) 2:选择器有哪些 基本选择器,层次选择器,过滤选择器,表单选择器 一:基本选择器 基本选择器是jq ...
- [转]当CPU飙高时,它在做什么
在开发过程中,有时候我们发现JVM占用的CPU居高不下,跟我们的预期不符,这时,CPU在做什么呢?是什么线程让CPU如此忙碌呢?我们通过如下几步,可以查看CPU在执行什么线程. 1.查找jvm进程ID ...
- Android Studio教程07-Fragment的使用
目录 1. Fragment是什么 1.1. 设计原理和实例 2. 创建fragment 2.1. fragment的生命周期 2.2 添加用户界面:融入到Activity中 3. 管理fragmen ...
- Android远程桌面助手(B1309)
修改了窗口缩放的处理,支持Android Car等非常规分辨率的Android设备: 修改了获取Android端软件版本的方法,优化了APK的升级逻辑: 优化了远程输入法功能,支持利用PC端输入法快速 ...
- Netty 核心容器之ByteBuf 结构详解
原文链接 Netty 核心容器之ByteBuf 结构详解 代码仓库地址 Java的NIO模块提供了ByteBuffer作为其字节存储容器,但是这个类的使用过于复杂,因此Netty实现了ByteBuf来 ...
- 解决Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.7.0:compile
原因: 由于项目所需jdk版本和你当前使用的jdk版本不一致导致的,因为我项目的pom.xml中定义了java版本为1.8,但是我实际idea中run这个项目却是1.7 解决方案: 更换当前jdk版本 ...
- docker容器安装vi (一般容器都是Debian GNU/Linux 9)
在使用docker容器时,同时你docker里的系统正好是debian或ubuntu的时候,有时候里边没有安装vim,敲vim命令时提示说:vim: command not found,这个时候就需要 ...