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& ...
随机推荐
- 关于使用freemarker导出文档的使用
7.FreeMarker导出word文件,模板:template.ftl/** * 为word加载数据插值 * * @throws IOException */ public void exportW ...
- DCOS实践分享(6):基于DCOS的大数据应用分享
Open DC/OS大中华区官方发布会在京隆重召开 DCOS领域诞生了一个100%开源的企业级Datacenter Operating System版本,即DC/OS.Linker Network ...
- 【.NET Core微服务实战-统一身份认证】开篇及目录索引
简介 学习.NETCORE也有1年多时间了,发现.NETCORE项目实战系列教程很少,都是介绍开源项目或基础教程,对于那些观望的朋友不能形成很好的学习思路,遇到问题怕无法得到解决而不敢再实际项目中 ...
- ubuntu系统界面改变
主题:https://gitzab.com/Anduin/GNOME-OSX-II-Theme.git图标:https://github.com/keeferrourke/la-capitaine-i ...
- Android 实现卡片翻转的动画(翻牌动画)
Android 实现卡片翻转的动画(翻牌动画) 需求描述 点击卡片,卡片翻转过来显示内容. 点击左边的卡片,将卡片翻转显示右边的图片结果. 功能实现 因为要翻转所以使用动画来完成翻转的动画.动画分为两 ...
- MYSQL手册
原文出处:http://www.cnblogs.com/gaofei-1/p/7152875.html MySQL配置文件 MySQL软件使用的配置文件名为my.ini,在安装目录下. MySQL常用 ...
- [Swift]LeetCode29. 两数相除 | Divide Two Integers
Given two integers dividend and divisor, divide two integers without using multiplication, division ...
- php中mysqli_fetch_assoc()和mysqli_fetch_row()的区别
mysqli_fetch_assoc() 函数 从结果集中取得一行作为关联数组: <?php // 假定数据库用户名:root,密码:123456,数据库:RUNOOB $con=mysqli_ ...
- 本地连接虚拟机_环境搭建01_VMWARE/XShell/CentOS
今天起准备搭建一套环境用来学习redis,dubbo,docker,nginx. 环境准备: 1.VMware12: https://pan.baidu.com/s/1-LnqfrWw8ZjQdmG ...
- Python内置函数(25)——getattr
英文文档: getattr(object, name[, default]) Return the value of the named attribute of object. name must ...