知识点 组合数学 卡特兰数

 关于卡特兰数

卡特兰数是一种经典的组合数,经常出现在各种计算中,其前几项为 : 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, ...

 

计算公式

卡特兰数一般的计算公式:这里写图片描述 
另类递推公式:C(n)=C(n-1)*((4*n-2)/(n+1));

一般性质

Cn的另一个表达形式为这里写图片描述 
所以,Cn是一个自然数,这一点在先前的通项公式中并不显而易见。 
这个表达形式也是André对前一公式证明的基础。

卡塔兰数满足以下递推关系 
这里写图片描述 
它也满足 
这里写图片描述 
这提供了一个更快速的方法来计算卡塔兰数。

卡塔兰数的渐近增长为 
这里写图片描述 
它的含义是左式除以右式的商趋向于1当n → ∞。(这可以用n!的斯特灵公式来证明。)

所有的奇卡塔兰数Cn都满足n = 2^k − 1。 
所有其他的卡塔兰数都是偶数。

实际问题的解决

说了这么多,那么卡特兰数在实际问题中的应用还是很广泛的:

经典问题:

  • 给出一个n,要求一个长度为2n的01序列,使得序列的任意前缀中1的个数不少于0的个数, 
    以下为长度为6的序列: 
    111000 101100 101010 110010 110100 
    证明: 
    令1表示进栈,0表示出栈,则可转化为求一个2n位,含n个1,n个0的二进制数, 
    满足从左往右扫描到任意一位时,经过的0数不多于1数 
    显然含n个1,n个0的2n位二进制数共有这里写图片描述个,下面考虑不满足要求的数目. 
    考虑一个含n个1,n个0的2n位二进制数,扫描到第2m+1位上时有m+1个0和m个1(容易证明一定存在这样的情况), 
    则后面的01排列中必有n-m个1n-m-1个0 
    将2m+2及其以后的部分0变成1,1变成0,则对应一个n+1个0和n-1个1的二进制数 
    反之亦然(相似的思路证明两者一一对应) 
    从而这里写图片描述

  • 将上例的X换成左括号,Y换成右括号,Cn表示所有包含n组括号的合法运算式的个数: 
    ((())) ()(()) ()()() (())() (()())

  • Cn表示有n+1个叶子的二叉树的个数 
    这里写图片描述

  • Cn表示所有不同构的含n个分枝结点的满二叉树的个数(一个有根二叉树是满的当且仅当每个结点都有两个子树或没有子树)

  • Cn表示所有在n × n格点中不越过对角线的单调路径的个数 
    一个单调路径从格点左下角出发,在格点右上角结束,每一步均为向上或向右 
    计算这种路径的个数等价于计算Dyck word的个数(同问题1): 
    X代表“向右”,Y代表“向上” 
    这里写图片描述

  • Cn表示通过连结顶点而将n + 2边的凸多边形分成三角形的方法个数 
    下图中为n = 4的情况: 
    这里写图片描述

  • Cn表示对{1, …, n}依序进出栈的置换个数 
    一个置换w是依序进出栈的当S(w) = (1, …, n), 
    其中S(w)递归定义如下:令w = unv,其中n为w的最大元素,u和v为更短的数列 
    再令S(w) =S(u)S(v)n,其中S为所有含一个元素的数列的单位元。

  • Cn表示集合{1, …, n}的不交叉划分的个数. 其中每个段落的长度为2

  • Cn表示用n个长方形填充一个高度为n的阶梯状图形的方法个数 
    下图为 n = 4的情况: 
    这里写图片描述

总结最典型的四类应用:

(实质上却都一样,无非是递归等式的应用,就看你能不能分解问题写出递归式了)

  1. 括号化问题。

      矩阵链乘: P=a1×a2×a3×……×an,依据乘法结合律,不改变其顺序,只用括号表示成对的乘积,试问有几种括号化的方案?(h(n)种)

  2. 出栈次序问题。 
      一个栈(无穷大)的进栈序列为1,2,3,..n,有多少个不同的出栈序列? 
       
      类似: 
      (1)有2n个人排成一行进入剧场。入场费5元。其中只有n个人有一张5元钞票,另外n人只有10元钞票,剧院无其它钞票,问有多少中方法使得只要有10元的人买票,售票处就有5元的钞票找零?(将持5元者到达视作将5元入栈,持10元者到达视作使栈中某5元出栈) 
       
      (2)在圆上选择2n个点,将这些点成对连接起来,使得所得到的n条线段不相交的方法数。 
      

  3. 将多边行划分为三角形问题。 
      将一个凸多边形区域分成三角形区域的方法数? 
       
      类似:一位大城市的律师在她住所以北n个街区和以东n个街区处工作。每天她走2n个街区去上班。如果她从不穿越(但可以碰到)从家到办公室的对角线,那么有多少条可能的道路? 
       
      类似:在圆上选择2n个点,将这些点成对连接起来使得所得到的n条线段不相交的方法数? 
       
    4.给顶节点组成二叉树的问题。 
      给定N个节点,能构成多少种形状不同的二叉树? 
      先去一个点作为顶点,然后左边依次可以取0至N-1个相对应的,右边是N-1到0个,两两配对相乘,就是h(0)*h(n-1) + h(2)*h(n-2) +…+ h(n-1)h(0)=h(n)(能构成h(N)个)

转自:https://blog.csdn.net/wu_tongtong/article/details/78161211

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/441596.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

android滑动菜单图标,Android实现简单底部导航栏 Android仿微信滑动切换效果

Android仿微信滑动切换最终实现效果:大体思路:1. 主要使用两个自定义View配合实现; 底部图标加文字为一个自定义view,底部导航栏为一个载体,根据需要来添加底部图标;2. 底部导航栏的设置方法类似于TabLayout的关联,View需要创建关联方法,用来关联VIewPag…

【HDU - 2149】Public Sale (巴什博奕)

题干: 虽然不想,但是现实总归是现实,Lele始终没有逃过退学的命运,因为他没有拿到奖学金。现在等待他的,就是像FarmJohn一样的农田生涯。 要种田得有田才行,Lele听说街上正在举行一场别开生面的拍卖会&…

Android万能遥控菜单选择添加,Android万能遥控器小应用

在很久很久以前,手机是有红外功能的,后来随着蓝牙技术的成熟,红外逐渐被蓝牙取代,不再是标配了。红外本身还是有些优点,比如操作简便,成本低。要想在手机上添加红外功能,就要外接一个转换模块。…

android studio 库工程,Android Studio 添加已有工程方法

准备工作:修改 excluded-paths和android.iml,修改内容详见下图。(目的:过滤和优先在sourcefolder查找,若没有再到JAR包中查找)BorqsUI/LINUX/android/development/tools/idegen$ mm编译出来:[100% 3/3] Install: out/h…

【HDU - 3951】Coin Game (博弈,猜规律,对称博弈)

题干: After hh has learned how to play Nim game, he begins to try another coin game which seems much easier. The game goes like this: Two players start the game with a circle of n coins. They take coins from the circle in turn and every time…

android textview 白色,android – AutoCompleteTextview默认情况下,颜色设置为白色

我在我的Android应用程序中使用了一个AutoCompleteTextView,它正常工作。我唯一遇到的问题是,默认情况下,建议的颜色为白色,我无法看到任何建议。所以当我开始打字时,列表会以白色条目(不可见)扩展,但是当我…

【HDU - 1527】【POJ - 1067】取石子游戏 (威佐夫博弈)

题干: 有两堆石子,数量任意,可以不同。游戏开始由两个人轮流取石子。游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子;二是可以在两堆中同时取走相同数量的石子。最后把石子全部取…

android okgo参数,Android OkGo基本操作

或许不是很全面,也都是从网上粘的,自己记下以后使用方便点。如有不对的地方 欢迎指教。首先添加依赖:implementation com.lzy.net:okgo:3.0.4设置初始化和全局配置:public class App extends Application {Overridepublic void on…

【CodeForces - 334B】Eight Point Sets(水题模拟,有坑)

题干: Gerald is very particular to eight point sets. He thinks that any decent eight point set must consist of all pairwise intersections of three distinct integer vertical straight lines and three distinct integer horizontal straight lines, ex…

一加6怎么刷android p6,一加6秒速跟进安卓P 教你尝鲜速成开发者

今年5月份,谷歌在I/O开发者大会上发布了全新的Android P操作系统,而在Android P系统发布后的没多久,一加手机官方就公开承诺,年度旗舰一加手机6将会成为首批次升级谷歌Android P系统的机型。而现在,一加已经开始兑现此…

*【CodeForces - 1047A】Little C Loves 3 I (水题,构造,三元组问题)

题干: Little C loves number 3 very much. He loves all things about it. Now he has a positive integer nn. He wants to split nn into 33 positive integers a,b,ca,b,c, such that abcnabcn and none of the 33 integers is a multiple of 33. Help him to…

html语言音乐添加路径,HTML5简单实现添加背景音乐的几种方法

这里推荐两种方法,就是两个标签 或者常用 css布局 隐藏播放器 做网站比较实用!html5添加音乐说明:1、src毫无疑问写路径.2、使用hidden"true"表示隐藏音乐播放按钮,相反使用hidden"false"表示开启音乐播放按钮…

【CodeForces - 1047B 】Cover Points (数学,构造,思维)

题干: There are nn points on the plane, (x1,y1),(x2,y2),…,(xn,yn)(x1,y1),(x2,y2),…,(xn,yn). You need to place an isosceles triangle with two sides on the coordinate axis to cover all points (a point is covered if it lies inside the triangle …

html字段隐藏,如何刮取动态隐藏的HTML字段(UuViewState)值?

我在代码中完全实现了请求,但在FormRequest中意识到VIEWSTATE和EVENTVALIDATION是动态的,它们随每个请求而变化。我想做的是刮去它们以便在下一个请求中提供它们。在这两个字段都在HTML代码中提供,但隐藏了<the __VIEWSTAT…

【CodeForces - 1051A】Vasya And Password (构造,水题)

题干: Vasya came up with a password to register for EatForces — a string ss. The password in EatForces should be a string, consisting of lowercase and uppercase Latin letters and digits. But since EatForces takes care of the security of its u…

html5引擎笔试题,最新!HTML5经典面试题型(附答案)

HTML已更新至HTML5,那么HTML5的测试题您也应该知道,这篇文章可以作为您的参考。1.doctype有什么作用呢?如何区分其混合模式和标准模式?所有这些都意味着什么?Doctype的作用是告诉浏览器使用HTML规范的哪个版本来渲染文…

【CodeForces - 1051B】Relatively Prime Pairs (构造,思维,素数,水题)

题干&#xff1a; You are given a set of all integers from ll to rr inclusive, l<rl<r, (r−l1)≤3⋅105(r−l1)≤3⋅105and (r−l)(r−l) is always odd. You want to split these numbers into exactly r−l12r−l12 pairs in such a way that for each pair (i,…

html 弹出加载页面,magnific popup:将整个html页面加载到弹出窗口中

我想用弹出的插件在弹出窗口中加载一个完整的html页面。如果我尝试&#xff1a;Edit images$(#edit-images-btn).magnificPopup({type: ajax});它产生了这个&#xff1a;这在图形上非常符合我的要求&#xff0c;但问题是的内容直接插入到dom中&#xff0c;而不是放在保护性的if…

【CodeForces - 1042A】Benches (优先队列,思维模拟,maxmin问题)

题干&#xff1a; There are nn benches in the Berland Central park. It is known that aiai people are currently sitting on the ii-th bench. Another mm people are coming to the park and each of them is going to have a seat on some bench out of nn available. …

网页html 图片横向摆放,css实现多张图片横向居中显示的方法

先讲一下实现的步骤&#xff1a;最终效果2. 代码实现HTML部分分类小贴士CSS部分.main{width:100%;margin-top:40px;}.main .tag{margin:0 auto;width:200px;font-size:18px;border-bottom:1px solid #878787;text-align:center;margin-bottom:20px;}.main .images{margin:0 aut…