Catalan卡特兰数入门
简介
卡特兰数是组合数学中的一种常见数列
它的前几项为:
1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900, 2674440, 9694845, 35357670,129644790, 477638700, 1767263190, 6564120420, 24466267020, 91482563640, 343059613650, 1289904147324, 4861946401452
公式
递归公式1
$f(n)=\sum_{i=0}^{n-1}f(i)*f(n-i-1)$
递归公式2
$f(n)=\frac{f(n-1)*(4*n-2)}{n+1}$
组合公式1
$f(n)=\frac{C_{2n}^n}{n+1}$
组合公式2,重要!重要!重要!
$f(n)=C_{2n}^n-C_{2*n}^{n-1}$
递推公式
$f[n]=\sum_{i=0}^{n-1}f[i]*f[n-i-1]$
一般在做题的时候,都是利用这个公式进行递推
证明
不会:stuck_out_tongue_closed_eyes:。(众人:那你在这瞎bb啥。:triumph:)
这个东西的证明我确实不会
不过我在这里教大家一种非常简单易懂的记忆方法,
记$f[n]$为卡特兰数的第$n$项
首先你要明白一件事情
一棵$n$个节点的二叉树的形态总数,就是卡特兰数的第$n$项
对于一棵二叉树,递归的考虑
一棵只有一个节点的二叉树只有一种形态
对于不是一个节点的二叉树,按照他的左右孩子进行讨论
设它的左孩子有$i$个节点,那么它的形态数为$f[i]$
那么它的右孩子有$n-i-1$个节点,那么它的形态数为$f[n-i-1]$
又因为每一个节点都可以作为根节点
所以不难得到递推式
$f[n]=\sum_{i=0}^{n-1}f[i]*f[n-i-1]$
例题
都是裸题我就不细讲了
洛谷P1722 矩阵 II
http://www.cnblogs.com/zwfymqz/p/7725346.html
洛谷P1044 栈
洛谷P1976 鸡蛋饼
http://www.cnblogs.com/zwfymqz/p/7725386.html
总结
卡特兰数是一种常见的数列
需要每一位选手掌握它的递推式
卡特兰数一般不会单独出现,往往会出现在一些题目的部分分中,如2017某省省选(具体忘记了。)
在考场上,要证明一个东西是卡特兰数是非常困难的
自己手玩点小数据,只要前几项吻合,那一般就是卡特兰数啦
Catalan卡特兰数入门的更多相关文章
- catalan卡特兰数
卡塔兰数是组合数学中一个常在各种计数问题中出现的数列.以比利时的数学家欧仁·查理·卡塔兰(1814–1894)命名.历史上,清代数学家明安图(1692年-1763年)在其<割圜密率捷法>最 ...
- 卡特兰(Catalan)数入门详解
也许更好的阅读体验 基本概念 介绍 学卡特兰数我觉得可能比组合数要难一点,因为组合数可以很明确的告诉你那个公式是在干什么,而卡特兰数却像是在用大量例子来解释什么时卡特兰数 这里,我对卡特兰数做一点自己 ...
- 卡特兰数(Catalan)
卡特兰数又称卡塔兰数,英文名Catalan number,是组合数学中一个常出现在各种计数问题中出现的数列.由以比利时的数学家欧仁·查理·卡塔兰 (1814–1894)命名,其前几项为 : 1, 2, ...
- 卡特兰数(Catalan Number) 算法、数论 组合~
Catalan number,卡特兰数又称卡塔兰数,是组合数学中一个常出现在各种计数问题中出现的数列.以比利时的数学家欧仁·查理·卡塔兰 (1814–1894)命名. 卡特兰数的前几个数 前20项为( ...
- 卡特兰数 Catalan数 ( ACM 数论 组合 )
卡特兰数 Catalan数 ( ACM 数论 组合 ) Posted on 2010-08-07 21:51 MiYu 阅读(13170) 评论(1) 编辑 收藏 引用 所属分类: ACM ( 数论 ...
- 卡特兰数(Catalan)简介
Catalan序列是一个整数序列,其通项公式是 h(n)=C(2n,n)/(n+1) (n=0,1,2,...) 其前几项为 : 1, 1, 2, 5, 14, 42, 132, 429, 1430, ...
- catalan 数——卡特兰数(转)
Catalan数——卡特兰数 今天阿里淘宝笔试中碰到两道组合数学题,感觉非常亲切,但是笔试中失踪推导不出来后来查了下,原来是Catalan数.悲剧啊,现在整理一下 一.Catalan数的定义令h(1) ...
- Catalan Number 卡特兰数
内容部分来自以下博客: Cyberspace_TechNode 邀月独斟 一个大叔 表示感谢! Catalan数的引入: 一个长度为2N的序列,里面有N个+1,N个-1 它的任意前缀和均非负,给定N, ...
- Catalan数——卡特兰数
一.Catalan数的定义 令h(0)=1,h(1)=1,Catalan数满足递归式:h(n) = h(0)*h(n-1) + h(1)*h(n-2) + ... + h(n-1)*h(0) (n& ...
随机推荐
- Unity AssetBundle的几个加载方式
string path = @"AssetBundles/scene/cubewall.ab"; string cacheDownloadPath = @"file:// ...
- Linux atop监控
200 ? "200px" : this.width)!important;} --> 介绍 atop是一个功能非常强大的linux服务器监控工具,它的数据采集主要包括:CP ...
- vue项目实践-添加express-mockjs进行数据模拟
mock-server 在新项目开始的时候,后端框架还没有,前端就有能够自己操作的模拟数据的服务是可以有的 express-mockjs 是楼教主结合 express+mock-lite 造的一个轮子 ...
- Python科学计算基础包-Numpy
一.Numpy概念 Numpy(Numerical Python的简称)是Python科学计算的基础包.它提供了以下功能: 快速高效的多维数组对象ndarray. 用于对数组执行元素级计算以及直接对数 ...
- [Swift]LeetCode989. 数组形式的整数加法 | Add to Array-Form of Integer
For a non-negative integer X, the array-form of X is an array of its digits in left to right order. ...
- 代码覆盖率 (Code Coverage)从简到繁 (一)
代码覆盖率(Code Coverage)是反映测试用例对被测软件覆盖程度的重要指标,也是衡量测试工作进展情况的重要指标.它也是对测试工作进行量化的重要指标之一,测试工作往往不如开发那样激动人心,一个重 ...
- MySQL5.7.25(解压版)Windows下详细的安装过程
大家好,我是浅墨竹染,以下是MySQL5.7.25(解压版)Windows下详细的安装过程 1.首先下载MySQL 推荐去官网上下载MySQL,如果不想找,那么下面就是: Windows32位地址:点 ...
- Thrift 代码分析
Thrift的基本结束 Thrift是一个跨语言的服务部署框架,最初由Facebook于2007年开发,2008年进入Apache开源项目.Thrift通过IDL(Interface Definiti ...
- TortoiseSVN客户端的使用说明
1 安装TortoiseSVN客户端 准备安装文件,TortoiseSVN-1.6.16.21511-x64-svn-1.6.17.msi,双击进行安装,按照提示步骤安装,安装完成后需重启计算机,SV ...
- Linux篇---Grep和正则匹配
一.前述 Linux中正则匹配查找比较常用,所以分享一篇关于正则匹配和Grep结合的文章. 二.匹配规则 匹配操作符: \ 转义字符. ...