浅谈 Catalan number——卡特兰数
一、定义:
卡特兰数是一组满足下面递推关系的数列:
二、变形:
首先,设h(n)为Catalan数的第n+1项,令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>=2)
可化简为1阶递推关系: h(n)=(4n-2)/(n+1)*h(n-1) (n>=2)
想看证明的点这里:https://blog.csdn.net/guoyangfan_/article/details/82888872
通项公式: 1 、h(n)=C(2n,n)/(n+1)
2、 h(n)=C(2n,n)-C(2n,n-1)
三、应用模型:
1、定义型:
求凸n边形的三角形划分方案数:
求有N个节点的二叉树的形态个数:
设f(n)表示有n个节点的二叉树的形态的个数,f(N)即为答案。
首先必然有一个根节点。设根节点左边有k个节点,则右边有N-k-1个节点,此时f(N)=f(k)*f(N-k-1)。由于k可以取到0~N-1,
由加法原理得f(N)=f(0)*f(N-1)+f(1)*f(N-2)+...+f(N-1)*f(0),符合卡特兰数的定义形式,故f(N)即为卡特兰数的hN项。
2、通项公式型:




上题的各种变式:
找零钱(找一半):有2n个人排成一行进入剧场。入场费5元。其中只有n个人有一张5元钞票,另外n人只有10元钞票,剧院无其它钞票,问有多少中方法使得只要有10元的人买票,售票处就有5元的钞票找零?
球盒问题:球分两种颜色,黑色和白色分别各有n只,盒子数量和球的个数相同,每个盒子里面只能放一只球,并且必须满足如下限制,即每一个白球必须和一只黑球配对,有多少种情况?



同列事件可视为等价,且在题目要求中事件1的次数/大小需要始终大于事件2。像这样的题都可以用卡特兰数的通项公式解。
浅谈 Catalan number——卡特兰数的更多相关文章
- Catalan Number 卡特兰数
内容部分来自以下博客: Cyberspace_TechNode 邀月独斟 一个大叔 表示感谢! Catalan数的引入: 一个长度为2N的序列,里面有N个+1,N个-1 它的任意前缀和均非负,给定N, ...
- 洛谷 p1044 栈 【Catalan(卡特兰数)】【经典题】
题目链接:https://www.luogu.org/problemnew/show/P1044 转载于:https://www.luogu.org/blog/QiXingZhi/solution-p ...
- 卡特兰数 catalan number
作者:阿凡卢 出处:http://www.cnblogs.com/luxiaoxun/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留 ...
- HDU 1023 Traning Problem (2) 高精度卡特兰数
Train Problem II Time Limit: 1000MS Memory Limit: 32768KB 64bit IO Format: %I64d & %I64u Sub ...
- HDU 1023 Train Problem II (大数卡特兰数)
Train Problem II Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- nyoj164——卡特兰数(待填坑)
题意:将1~2n个数按照顺时针排列好,用一条线将两个数字连接起来要求:线之间不能有交点,同一个点只允许被连一次. 最后问给出一个n,有多少种方式满足条件. 卡特兰数(列): 令h(0)=1,h(1)= ...
- bzoj2822[AHOI2012]树屋阶梯(卡特兰数)
2822: [AHOI2012]树屋阶梯 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 879 Solved: 513[Submit][Status] ...
- 浅谈卡特兰数(Catalan number)的原理和相关应用
一.卡特兰数(Catalan number) 1.定义 组合数学中一个常出现在各种计数问题中出现的数列(用c表示).以比利时的数学家欧仁·查理·卡特兰的名字来命名: 2.计算公式 (1)递推公式 c[ ...
- 卡特兰数(Catalan Number) 算法、数论 组合~
Catalan number,卡特兰数又称卡塔兰数,是组合数学中一个常出现在各种计数问题中出现的数列.以比利时的数学家欧仁·查理·卡塔兰 (1814–1894)命名. 卡特兰数的前几个数 前20项为( ...
随机推荐
- 微服务理论之二:面向微服务架构与传统架构、SOA对比,以及云化对比
一.Monolith 网上对Microservice进行介绍的文章常常以Monolith作为开头,我也不会例外.原因是,知道了Monolith的不便之后才能更容易地理解Microservice架构模式 ...
- adb 打印kernel输出的log
一. linux 内核printk机制 1.1. Android内核是基于Linxu kernel的,因此其log机制也是通用的,在Android内核中使用printk函数进行Log输出.与 ...
- webpack入门学习手记(一)
本人微信公众号:前端修炼之路,欢迎关注. 之前用过gulp.grunt,但是一直没有学习过webpack.这两天刚好有时间,学习了下webpack.webpack要想深入研究,配置的东西比较多,网上的 ...
- Codeforces1256F_Equalizing Two Strings
题意 给定两个字符串,可以任意选择s串的一段和t串的相同长度的一段进行翻转,无限次数,问能否通过翻转使得两个字符串相等. 分析 看了题解发现思路很巧妙. 无限次数的子串翻转其实就是相邻两个字符的交换. ...
- 剑指offer-递归和循环-python
-斐波那契数列- 大家都知道斐波那契数列(1.1.2.3.5.8.13.21.34.……),现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0). n<=39 斐波那契数 ...
- vue的v-model指令原理分析
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- RGB颜色值转换成十六进制
function transferRgbToStr(color) { if (typeof color !== 'string' && !(color instanceof Strin ...
- luffyapi项目 --短信认证的基本操作
一.开通腾讯云短信 SDK 文档 :https://cloud.tencent.com/document/product/382/11672 1.官网注册实名账号:https://cloud.tenc ...
- Malloc与Free不调用构造函数与析构函数
例子: #include "stdafx.h" #include <new> #include <iostream> using namespace std ...
- MathType 7.4.2.480
目录 1. 相关推荐 2. 按 3. 软件介绍 4. 安装步骤 5. 使用说明 6. 下载地址 1. 相关推荐 推荐使用:AxMath(AxMath可以与LaTeX进行交互):https://blog ...