看似数学上的一个常用数列编程进也常用到——Catalan数

合集下载

组合数学-第十一节:Fibonacci数和Catalan数

组合数学-第十一节:Fibonacci数和Catalan数

4.5 Fibonacci 数和Catalan 数Fibonacci 数列和Catalan 数列是递推关系的典型问题,它们经常出现在组合计数问题中,而这两个数列本身的应用也十分广泛。

4.5.1 Fibonacci 数关于Fibonacci 数列的问题是一个古老的数学问题,它是由意大利著名数学家Fibonacci 于1202年提出来的。

这个问题是:把一对兔子(雌、雄各一只)在某年的开始放到围栏中,每个月这对兔子都生出一对新兔子,其中雌、雄各一只。

从第二个月开始,每对新兔子每个月也生出一对新兔子,也是雌、雄各一只。

问一年后围栏中有多少对兔子?对于1,2,n = ,令()f n 表示第n 个月开始时围栏中的兔子对数。

显然有()()11,22f f ==。

在第n 个月的开始,那些第1n -个月初已经在围栏中的兔子仍然存在,而且每对在第2n -个月初就存在的兔子将在第1n -个月生出一对新兔子,所以有()()()()()()12311,22f n f n f n n f f =-+-≥⎧⎪⎨==⎪⎩ (4.5.1)这是一个带有初值的递推关系,如果我们规定()01f =,则递推关系(4.5.1)就变成()()()()()()12201,11f n f n f n n f f =-+-≥⎧⎪⎨==⎪⎩ (4.5.2)满足递推关系(4.5.2)的数列就叫做Fibonacci 数列,它的项就叫做Fibonacci 数。

下面我们来求解这个递推关系,它的特征方程为210x x --=其特征根为12x x ==所以,通解为()121122n nf n c c ⎛⎛+=+ ⎝⎭⎝⎭代入初值来确定1c 和2c ,得到方程组12121,11122c c c +=⎧⎪⎨++=⎪⎩ 解这个方程组,得121,212cc+==所以,原递推关系的解为()()110,1,2n nf nn++=⎭⎭=Fibonacci数常出现在组合计数问题中。

卡特兰数——精选推荐

卡特兰数——精选推荐

卡特兰数卡特兰数卡特兰数的意义卡特兰数有⼀个很重要的意义就是:C n 表⽰所有在n × n格点中不越过对⾓线的单调路径的个数。

通项公式卡特兰数有两个通项公式,第⼀个是这样的:C n =1n +12n n=(2n )!(n +1)!n !第⼆个是这样的:C n =2nn −2n n +1for n ≥1第⼀个公式就是把第⼆个公式拆开。

卡特兰数通项公式的证明我们考虑证明第⼆个公式。

证明的⽅式有很多,均和卡特兰数的性质有关,证明⽅法之间也可以互相转换。

所以这⾥介绍⼀种最普通的证明⽅法。

根据定义,合法的路径不能越过对⾓线。

那么我们考虑利⽤总⽅案数C n 2n 减去不合法的⽅案数。

这⾥的黄⾊线和绿⾊线连接⽽成的路径代表⼀条不合法的路径,我们把路径第⼀次超越对⾓线的点(点L)到终点(点A)的路径沿粉⾊线条(对⾓线向上平移1个单位得到)对称。

得到了蓝⾊的路径。

显然,这⾥的黄⾊路径和蓝⾊路径是对应的。

⽽之所以选择“向上平移1个单位”的意义就是在任何情况下接触这条线就会变成不合法路径。

容易证明,所有不合法的路径和所有从原点到A'点的路径都是⼀⼀对应的。

所以不合法的路径条数就是从原点到A'的路径条数C n −12n证明如下:因为这个关系是可逆的(通过操作后的路径能得出操作前的路径),所以显然所有不合法的路径和所有从原点到A'点的路径都是⼀⼀对应的。

这样就得出了前⾯提到的卡特兰数第⼆个通项公式:C n =2n n −2n n +1 for n ≥1应⽤组合数学中有⾮常多的组合结构可以⽤卡塔兰数来计数。

C n 表⽰长度2n 的dyck word的个数。

Dyck word是⼀个有n 个X和n 个Y组成的字串,且所有的前缀字串皆满⾜X的个数⼤于等于Y的个数。

以下为长度为6的dyck words: XXXYYY XYXXYY XYXYXY XXYYXY XXYXYY。

(这个性质在⽤到了)将上例的X换成左括号,Y换成右括号,C n 表⽰所有包含n 组括号的合法运算式的个数。

数学期望与卡塔兰(Catalan)数

数学期望与卡塔兰(Catalan)数

C tl 11 19)即序列 , 1 , , aa n(84— 84) a , …
Cn … , =
n 十 l …

十 l

礼 !・礼 :
( = 012… ) ,,, 为第 n+1 个卡塔兰 ( aaa ) C tl n
数.前 1 个卡塔兰数为 1 1 2 5 1 , 2 12 0 , , , , 4 4, 3,
序列, 不但应用它解决幂级数展开问题, 而且还 给出了卡塔兰数的一个几何模型. 88 13 年卡塔兰 提 出并解决了下面问题: 个有 固定顺序的因子, n 例如0 , 2… , 在两个相邻因子间连续作乘 1a , a , 法, 如何 确定不同的求积方法数? J l 卡塔兰得到 4 方法数是 C 一 . n 1 若取 n=4 四个有固定顺序的 , 因子 a bCd 则 = 5 五种不同结合方法是 ,,, , ,
公式, 以对 比赛场数进行预测. 可

用 () 表示在“佗一 1 n ( : 12 2 局 胜”钆 ,, ) 制下 比赛局数 ∈ 的数学期望.
本文的主要结果是 定理 设 甲每局胜 的概率为P 乙每局胜 的 ,
首创者 【j 3 他在1 世纪三、四十年代先于欧拉 J 8 (7 8 和卡塔兰 (8 8 提 出并应用 了这一 15 年) 13 年)
21年第 3 02 期
数 学数学
33 —, }
数学期望与卡塔兰( aa n数 C tl ) a
1 08首都师范大学初等教育学院 石冶郝 程小红 04 0
1 .引言
卡 塔兰 序 列 ( 名 于 比利 时数 学家 E 取 .C .
文 讨论 了重复性赛制 问题的数学模型, 并
证明“n一1 n 制是一种公平 的比赛, 2 局 胜” 重点 研 究 比赛 局 数 的相 关 概率 分 布 问题 . 本文侧重探讨 “n一 1 n 制下 比赛局 2 局 胜”

组合数学

组合数学

组合数学中的基本原理及其应用卡特兰数Catalan,Eugene,Charles,卡特兰(1814~1894)比利时数学家,生于布鲁日(Brugge),早年在巴黎综合工科学校就读。

1856年任列日(Liege)大学数学教授,并被选为比利时布鲁塞尔科学院院士。

卡特兰一生共发表200多种数学各领域的论著。

在微分几何中,他证明了下述所谓的卡特兰定理:当一个直纹曲线是平面和一般的螺旋面时,他只能是实的极小曲面。

他还和雅可比(Jacobi,C·G·J)同时解决了多重积分的变量替换问题,建立了有关的公式。

1842年,他提出了一种猜想:方程x z-y t=1没有大于1的正整数解,除非平凡情形32-23=1。

这一问题至今尚未解决。

(mathoe注:即除了8、9这两个连续正整数都是正整数的方幂外,没有其他。

1962年我国数学家柯召以极其精湛的方法证明了不存在三个连续正整数,它们都是正整数的方幂,以及方程x2-y n=1,n >1,xy≠0无正整数解。

并且还证明了如果卡特兰猜想不成立,其最小的反例也得大于1016。

)此外,卡特兰还在函数论、伯努利数和其他领域也做出了一定的贡献。

卡特兰通过解决凸n边形的剖分得到了数列C n。

凸n+2边形用其n-1条对角线把此凸n+2边形分割为互不重叠的三角形,这种分法的总数为C n。

为纪念卡特兰,人们使用“卡特兰数”来命名这一数列。

据说有几十种看上去毫不相干的组合计数问题的最终表达式都是卡特兰数的形式。

卡特兰数在数学竞赛、信息学竞赛、组合数学、计算机编程等都会有其不同侧面的介绍。

前几个卡特兰数:规定C0=1,而C1=1,C2=2,C3=5,C4=14,C5=42,C6=132,C7=429,C8=1430,C9=4862,C10=16796,C11=58786,C12=208012,C13=742900,C14=2674440,C15=9694845。

递推公式圆周上有标号为1,2,3,4,……,2n的共计2n个点,这2n个点配对可连成n条弦,且这些弦两两不相交的方式数为卡特兰数C n。

卡特兰数算法实现_解释说明以及概述

卡特兰数算法实现_解释说明以及概述

卡特兰数算法实现解释说明以及概述引言部分是文章的开篇,应该对卡特兰数算法进行简要的介绍和概述。

以下是引言部分内容:1. 引言1.1 概述卡特兰数算法是组合数学中一种重要的计算方法,用来计算大量具有递归关系的问题。

它由比利时数学家欧·乌亚伊斯于19世纪中叶首次提出,并以比利时数学家欧仁·查尔斯·卡特兰的名字命名而得名。

卡特兰数算法被广泛应用于多个领域,如计算机科学、信息技术、电子工程等。

它在组合优化、动态规划、几何图形等问题求解中发挥着重要的作用。

本文将详细介绍和解释卡特兰数算法的实现原理及其应用案例分析,并通过对比不同实现方法及其优劣,总结出适用于不同场景和问题求解的最佳实践。

1.2 文章结构本文共包括五个章节,每个章节都涵盖了不同方面的内容:- 第一章:引言。

本章介绍了本文的背景与目标,并简要概括了卡特兰数算法及其应用。

- 第二章:卡特兰数算法概述。

本章对卡特兰数算法进行定义和历史背景的介绍,并探讨了其在不同领域中的应用。

- 第三章:卡特兰数算法实现步骤。

本章详细解释了卡特兰数算法的具体实现步骤,包括递推公式推导、动态规划实现以及递归实现及优化方法。

- 第四章:卡特兰数算法应用案例分析。

本章通过具体案例分析了卡特兰数算法在括号匹配问题、栈操作序列计数问题和凸多边形三角剖分方案计算中的应用。

- 第五章:结论与总结。

本章总结了卡特兰数算法的优缺点,并展望了其未来的发展前景。

1.3 目的本文旨在深入研究和探索卡特兰数算法,全面解释其实现原理及其应用领域,并提供具体案例进行分析,以期读者能够更好地理解该算法并将其运用于问题求解过程中。

此外,本文也将为读者提供一些可行的优化方法和未来可能的发展趋势,为相关领域的研究人员和工程师提供参考和借鉴。

2. 卡特兰数算法概述2.1 定义和历史背景卡特兰数算法是一种用于计算排列组合数量的数学算法。

它以比利时数学家欧仁·查理·卡特兰(Eugène Charles Catalan)的名字命名,他首次研究并发现了这个数列。

Catalan数——卡特兰数

Catalan数——卡特兰数
要么是在这个1左边,要么是在这个1前面.而肯定要有一个0的,在这个1前面,统计在这个1之前的0和1的个数.
也就是要求,0的个数大于1的个数.
OK,问题已经解决.
如果把0看成入栈操作,1看成出栈操作,就是说给定6个元素,合法的入栈出栈序列有多少个.
这就是catalan数,这里只是用于栈,等价地描述还有,二叉树的枚举,多边形分成三角形的个数,圆括弧插入公式中的
显然,不符合要求的方案数为c(2n,n+1)。由此得出 输出序列的总数目=c(2n,n)-c(2n,n+1)=1/(n+1)*c(2n,n)。
(这个公式的下标是从h(0)=1开始的)
int ans = 0;
for (int state = 0; state < (1 << 12); ++state) if (bit_cnt(state) == 6)
{
int i = 0, j = 0;
for (int k = 0; k < 12; ++k) if (state&(1<<k)) F[i++] = k; else B[j++] = k;
注意:c(2n, n)/(n+1) = c(2n, n) - c(2n, n-1)
估计出题的人也读过<<计算机程序艺术>>吧.
PS:
另一个很YD的问题:
有编号为1到n(n可以很大,不妨在这里假定可以达到10亿)的若干个格子,从左到右排列.
在某些格子中有一个棋子,不妨设第xi格有棋子(1<=i<=k, 1<=k<=n)

常用数学知识

常用数学知识

常用数学知识重要定理和公式一、常见递推关系1.Fibonacci 数列A(1)=1; A(2)=1;A(n)=A(n-1) + A(n-2);2.Catalan数:前16个:1 12 5 14 42 132 429 1430 4862 16796 58786 208012 742900 2674440 9694845 (在处理数据的过程中应该用到高精度)考虑具有n个结点不同形态的二叉树的个数H(n)H (0) = 1;H (n) = H (0) H (n-1) + H (1) H (n-2) + H (2) H (n-3) … + H (n-2) H (1) + H (n-1) H (0) ;通项公式为:H (n) = (1/ (n+1)) * C (n, 2n)可推导出:1.长度为n的0-1串中最多含k个1的例长度为N (N<=31)的01串中1的个数小于等于L的串组成的集合中找出按大小排序后的第I个01串。

2给定序列入栈出栈后可形成的情况总数为C(2n, n) –C(2n,n+1).例fjoi2000在一个列车调度站中,2条轨道连接到2条侧轨处,形成2个铁路转轨站,如下图所示。

其中左边轨道为车皮入口,右边轨道为出口。

编号为1,2,……,n的N个车皮从入口依次进入转轨站,由调度室安排车皮进出栈次序,并对车皮按其出栈次序重新编序a1,a2,……,an。

给定正整数N(1<=n<=300),编程计算右边轨道最多可以得到多少个不同的车皮编序方案。

例如当n=3时,最多得到5组不同的编序方案。

3. 第二类Stirling数:s(n,k)表示含n个元素的集合划分为k个集合的情况数A.分类:集合{An}存在,则有s(n-1,k-1); 不存在则An和放入k个集合中的任意一个,共k*s(n-1,k)种。

s(n,k)={ s(n-1,k-1)+k*s(n-1,k) (n>k>=1) }*:求一个集合总的划分数即为sigema(k=1..n) s(n,k) .4.数字划分模型*NOIP2001数的划分将整数n分成k份,且每份不能为空,任意两种分法不能相同(不考虑顺序)。

美国数学大联盟常用英文词汇

美国数学大联盟常用英文词汇

美国数学大联盟常用英文词汇一、基础数学词汇1. Arithmetic 算术2. Algebra 代数3. Geometry 几何4. Trigonometry 三角学5. Calculus 微积分6. Statistics 统计学7. Probability 概率论8. Combinatorics 组合数学9. Number theory 数论10. Set theory 集合论二、代数词汇1. Variable 变量2. Equation 方程3. Inequality 不等式4. Function 函数5. Graph 图像6. Polynomial 多项式7. Factorization 因式分解8. Exponent 指数9. Logarithm 对数10. Matrix 矩阵三、几何词汇1. Point 点2. Line 线3. Plane 平面4. Angle 角度5. Triangle 三角形6. Quadrilateral 四边形7. Circle 圆8. Perimeter 周长9. Area 面积10. Volume 体积四、三角学词汇1. Sine 正弦2. Cosine 余弦3. Tangent 正切4. Cosecant 余割5. Secant 正割6. Cotangent 余切7. Arcsine 反正弦8. Arccosine 反余弦9. Arctangent 反正切10. Radian 弧度五、微积分词汇1. Derivative 导数2. Integral 积分3. Limit 极限4. Series 级数5. Sequence 数列6. Differentiation 微分7. Integration 积分8. Differential equation 微分方程9. Taylor series 泰勒级数10. Fourier series 傅里叶级数六、统计学词汇1. Data 数据2. Sample 样本3. Population 总体4. Mean 平均值5. Median 中位数6. Mode 众数7. Standard deviation 标准差8. Variance 方差9. Probability distribution 概率分布10. Hypothesis testing 假设检验七、概率论词汇1. Event 事件2. Probability 概率3. Random variable 随机变量4. Probability space 概率空间5. Conditional probability 条件概率6. Bayes' theorem 贝叶斯定理7. Independence 独立性8. Law of large numbers 大数定律9. Central limit theorem 中心极限定理10. Random walk 随机游走八、组合数学词汇1. Permutation 排列2. Combination 组合3. Binomial coefficient 二项式系数4. Pascal's triangle 帕斯卡三角形5. Catalan number 卡塔兰数6. Fibonacci sequence 斐波那契数列7. Partition 分割8. Graph theory 图论9. Ramsey theory 拉姆齐理论10. Combinatorial design 组合设计九、数论词汇1. Prime number 质数2. Composite number 合数3. Divisor 因数4. GCD 最大公约数5. LCM 最小公倍数6. Modular arithmetic 模运算7. Fermat's little theorem 费马小定理8. Euler's theorem 欧拉定理9. Chinese remainder theorem 中国剩余定理10. RSA encryption RSA加密十、集合论词汇1. Set 集合2. Element 元素3. Union 并集4. Intersection 交集5. Complement 补集6. Power set 幂集7. Cartesian product 笛卡尔积8. Function 函数9. Relation 关系10. Equivalence relation 等价关系美国数学大联盟常用英文词汇一、基础数学词汇1. Arithmetic 算术2. Algebra 代数3. Geometry 几何4. Trigonometry 三角学5. Calculus 微积分6. Statistics 统计学7. Probability 概率论8. Combinatorics 组合数学9. Number theory 数论10. Set theory 集合论二、代数词汇1. Variable 变量2. Equation 方程3. Inequality 不等式4. Function 函数5. Graph 图像6. Polynomial 多项式7. Factorization 因式分解8. Exponent 指数9. Logarithm 对数10. Matrix 矩阵三、几何词汇1. Point 点2. Line 线3. Plane 平面4. Angle 角度5. Triangle 三角形6. Quadrilateral 四边形7. Circle 圆8. Perimeter 周长9. Area 面积10. Volume 体积四、三角学词汇1. Sine 正弦2. Cosine 余弦3. Tangent 正切4. Cosecant 余割5. Secant 正割6. Cotangent 余切7. Arcsine 反正弦8. Arccosine 反余弦9. Arctangent 反正切10. Radian 弧度五、微积分词汇1. Derivative 导数2. Integral 积分3. Limit 极限4. Series 级数5. Sequence 数列6. Differentiation 微分7. Integration 积分8. Differential equation 微分方程9. Taylor series 泰勒级数10. Fourier series 傅里叶级数六、统计学词汇1. Data 数据2. Sample 样本3. Population 总体4. Mean 平均值5. Median 中位数6. Mode 众数7. Standard deviation 标准差8. Variance 方差9. Probability distribution 概率分布10. Hypothesis testing 假设检验七、概率论词汇1. Event 事件2. Probability 概率3. Random variable 随机变量4. Probability space 概率空间5. Conditional probability 条件概率6. Bayes' theorem 贝叶斯定理7. Independence 独立性8. Law of large numbers 大数定律9. Central limit theorem 中心极限定理10. Random walk 随机游走八、组合数学词汇1. Permutation 排列2. Combination 组合3. Binomial coefficient 二项式系数4. Pascal's triangle 帕斯卡三角形5. Catalan number 卡塔兰数6. Fibonacci sequence 斐波那契数列7. Partition 分割8. Graph theory 图论9. Ramsey theory 拉姆齐理论10. Combinatorial design 组合设计九、数论词汇1. Prime number 质数2. Composite number 合数3. Divisor 因数4. GCD 最大公约数5. LCM 最小公倍数6. Modular arithmetic 模运算7. Fermat's little theorem 费马小定理8. Euler's theorem 欧拉定理9. Chinese remainder theorem 中国剩余定理10. RSA encryption RSA加密十、集合论词汇1. Set 集合2. Element 元素3. Union 并集4. Intersection 交集5. Complement 补集6. Power set 幂集7. Cartesian product 笛卡尔积8. Function 函数9. Relation 关系10. Equivalence relation 等价关系十一、数学竞赛相关词汇1. Contest 竞赛2. Problem 问题3. Solution 解答4. Strategy 策略5. Practice 练习6. Challenge 挑战7. Competition 比赛8. Award 奖项9. Medal 奖牌10. Rank 排名十二、数学教育相关词汇1. Curriculum 课程2. Lesson 课3. Exercise 练习4. Homework 作业5. Test 测试6. Assessment 评估7. Instruction 指导8. Resource 资源9. Tool 工具10. Technique 技巧十三、数学研究相关词汇1. Research 研究2. Theory 理论3. Hypothesis 假设4. Proof 证明5. Result 结果6. Experiment 实验7. Observation 观察8. Analysis 分析9. Conclusion 结论10. Publication 发表十四、数学应用相关词汇1. Application 应用2. Model 模型3. Algorithm 算法4. Simulation 模拟5. Optimization 优化6. Data 数据7. Analysis 分析8. Solution 解答9. Design 设计10. Evaluation 评估十五、数学文化相关词汇1. History 历史2. Development 发展3. Influence 影响4. Mathematician 数学家5. Theory 理论6. Concept 概念7. Idea 思想8. Innovation 创新9. Tradition 传统10. Legacy 遗产通过掌握这些常用英文词汇,你将能够更好地理解和参与美国数学大联盟的数学竞赛、教育、研究以及应用等领域的讨论和交流。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Catalan数
Catalan number,卡特兰数又称卡塔兰数,是组合数学中一个常出现在各种计数问题中出现的数列。

由以比利时的数学家欧仁·查理·卡塔兰(1814–1894)命名。

卡特兰数前几项为: 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, ...
一.Catalan数的描述
1、递推式
h(0)=1
h(1)=1
h(n)= h(0)*h(n-1)+h(1)*h(n-2) + ... + h(n-1)h(0) (n>=2)
例如:h(2)=h(0)*h(1)+h(1)*h(0)=1*1+1*1=2
h(3)=h(0)*h(2)+h(1)*h(1)+h(2)*h(0)=1*2+1*1+2*1=5
2、另类递推式:
h(n)=h(n-1)*(4*n-2)/(n+1);
3、递推关系的解为:
h(n)=C(2n,n)/(n+1) P(2n,n)/(n+1)!=(2n)!/(n!*(n+1)!) (n=0,1,2,...)
4、递推关系的另类解为:
h(n)=c(2n,n)-c(2n,n+1)(n=0,1,2,...)
二.结果为Catalan数的几个典型例子
1、矩阵链乘括号化
矩阵链乘:P=a1×a2×a3×……×an,依据乘法结合律,不改变其顺序,只用括号表示成对的乘积,试问有几种括号化的方案?(h(n-1)种)
2、出栈序列
一个栈(无穷大)的进栈序列为1,2,3,…,n,有多少个不同的出栈序列?
分析:设f(n)=序列个数为n的出栈序列种数。

假定,从开始到栈第一次出到空为止,这段过程中第一个出栈的序数是k。

特别地,如果栈直到整个过程结束时才空,则k=n。

首次出空之前第一个出栈的序数k将1~n的序列分成两个序列,其中一个是1~k-1,序列个数为k-1,另外一个是k+1~n,序列个数是n-k。

此时,我们若把k视为确定一个序数,那么根据乘法原理,f(n)的问题就等价于——序列个数为k-1的出栈序列种数乘以序列个数为n - k的出栈序列种数,即选择k这个序数的f(n)=f(k-1)×f(n-k)。

而k可以选1到n,所以再根据加法原理,将k取不同值的序列种数相加,得到的总序列种数为:f(n)=f(0)f(n-1)+f(1)f(n-2)+……+f(n-1)f(0)。

即为f(n)=h(n)= C(2n,n)/(n+1)= c(2n,n)-c(2n,n+1)(n=0,1,2,……)。

最后,令f(0)=1,f(1)=1。

3、n位1和n位0组成的特殊要求的二进制数
n个1和n个0组成一2n位的2进制数,要求从左到右扫描,1的累计数不小于0的累计数,试求满足这条件的数有多少?
这等价于出栈序列统计(进栈为1出栈为0描述的情况)
对于每一个数来说,必须进栈一次、出栈一次。

我们把进栈设为状态‘1’,出栈设为
状态‘0’。

n个数的所有状态对应n个1和n个0组成的2n位二进制数。

由于等待入栈的操作数按照1‥n的顺序排列、入栈的操作数b大于等于出栈的操作数a(a≤b),因此输出序列的总数目=由左而右扫描由n个1和n个0组成的2n位二进制数,1的累计数不小于0的累计数的方案种数。

在2n位二进制数中填入n个1的方案数为c(2n,n),不填1的其余n位自动填0。

从中减去不符合要求(由左而右扫描,0的累计数大于1的累计数)的方案数即为所求。

不符合要求的数的特征是由左而右扫描时,必然在某一奇数位2m+1位上首先出现m+1个0的累计数和m个1的累计数,此后的2(n-m)-1位上有n-m个1和n-m-1个0。

如若把后面这2(n-m)-1位上的0和1互换,使之成为n-m个0和n-m-1个1,结果得1个由n+1个0和n-1个1组成的2n位数,即一个不合要求的数对应于一个由n+1个0和n-1个1组成的排列。

反过来,任何一个由n+1个0和n-1个1组成的2n位二进制数,由于0的个数多2个,2n为偶数,故必在某一个奇数位上出现0的累计数超过1的累计数。

同样在后面部分0和1互换,使之成为由n个0和n个1组成的2n位数,即n+1个0和n-1个1组成的2n位数必对应一个不符合要求的数。

因而不合要求的2n位数与n+1个0,n-1个1组成的排列一一对应。

显然,不符合要求的方案数为c(2n,n+1)。

由此得出输出序列的总数目=c(2n,n)-c(2n,n+1)=c(2n,n)/(n+1)=h(n+1)。

4、买票找零
有2n个人排成一行进入剧场。

入场费5元。

其中只有n个人有一张5元钞票,另外n 人只有10元钞票,剧院无其它钞票,问有多少中方法使得只要有10元的人买票,售票处就有5元的钞票找零?(将持5元者到达视作将5元入栈,持10元者到达视作使栈中某5元出栈)
5、凸多边形三角划分
在一个凸多边形中,通过若干条互不相交的对角线,把这个多边形划分成了若干个三角形。

现在的任务是键盘上输入凸多边形的边数n,求不同划分的方案数f(n)。

比如当n=6时,f(6)=14。

6、在圆上选择2n个点,将这些点成对连接起来使得所得到的n条线段不相交的方法数? 7、上班线路
一位大城市的律师住所以北n个街区和以东n个街区处工作。

每天她走2n个街区去上班。

如果他从不穿越(但可以碰到)从家到办公室的对角线,那么有多少条可能的道路?8、N个定节点组成二叉树
给定N个节点,能构成多少种不同的二叉树?
(能构成h(N)个, 这个公式的下标是从h(0)=1开始的)
9、对于在n位的2进制中,有m个0,其余为1的catalan数为:C(n,m)-C(n,m-1)。

10、有n个1和m个-1(n>=m),共n+m个数排成一列,满足对所有0<=k<=n+m的前k个数的部分和S k >= 0的排列数。

相关文档
最新文档