原文:所有可能的出栈序列问题及卡塔兰数的应用

今天在做数据结构课后练习题的时候,发现有一道题挺有意思的,问题是这样的:给定两个序列,给出算法用来判断第二个序列是否为以第一个序列为入栈顺序的出栈序列。比如给出了入栈的序列 EASY,那么给出一个算法判断ASYE是否为它的一个出栈序列。在还没有做出这个题目之前我想到了另外的一个问题:如果给出一个入栈的序列,那么怎么求出所有可能的出栈序列呢 那么我们先来解决第二个问题。假如你组合数学学的还行的话, ...

2012-05-19 11:34 3 10522 推荐指数:

查看详情

矩阵连乘问题的算法复杂度的计算--(Catalan)的数学推导和近似公式

这里以连乘积加括号问题为背景:   由于矩阵的乘积满足结合律,且矩阵乘积必须满足左边矩阵的列的等于右边矩阵的行数,不同的计算顺序,需要的乘法运算次数不一样。加括号可以改变计算顺序,合理安排计算顺序可以大大降低计算次数。   给乘积算式加括号的方法数是一个计数问题。它的模型是卡特。 比如有 ...

Fri Apr 03 20:40:00 CST 2020 1 1308
卡特的证明以及应用

序列计数问题 给定一长为n的序列,各位元素各不相同,那么经过入,出后,可以得到多少种不同的序列。 这个问题的答案是卡特C(n)。 卡特 卡特是中一个常在各种计数问题中出现的数列。用C(n)表示卡特第n项,则有通项公式 \[C(n)=C_{2n}^n-C_ ...

Wed Oct 20 06:42:00 CST 2021 0 852
顺序 与 卡特(Catalan)的关系

一,问题描述 给定一个以字符串形式表示的入序列,请求出一共有多少种可能的出顺序?如何输出所有可能的出序列? 比如入序列为:1 2 3 ,则出序列一共有五种,分别如下:1 2 3、1 3 2、2 1 3、2 3 1、3 2 1 二,问题分析 先介绍几个规律: ①对于出 ...

Thu Aug 18 19:47:00 CST 2016 0 8149
组合数学及其应用——卡特

卡特是组合数学中常见也是重要的特殊计数公式。 首先给出一个现实问题的模型: 给出凸多边形的边n,求解该凸多边形内部不相交的对角线把这个区域分成三角形区域的方法数。 首先我们进行初步的分析,当n=2,h2=1,也就是说对于三角形,划分的情况是1.这似乎有些不好理解 ...

Sat Sep 10 04:07:00 CST 2016 0 4556
Catalan,括号序列

全是入门的一些东西.基本全是从别处抄的. : 支持单端插入删除的线性容器. 也就是说,仅允许在其一端加入一个新元素或删除一个元素. 允许操作的一端也叫顶,不允许操作的一端也叫栈底. 数个箱子相叠就可以认为是一个,只能在最顶端加入一个新箱子或拿走一个箱子. 中的元素遵循后进先出(last ...

Sun Nov 19 03:24:00 CST 2017 0 1698
浅谈卡特(Catalan number)的原理和相关应用

一、卡特(Catalan number) 1.定义 组合数学中一个常出现在各种计数问题中出现的数列(用c表示)。以比利时的数学家欧仁·查理·卡特的名字来命名; 2.计算公式 (1)递推公式 c[n]=Σ(0≤k<n)c[k]c[n-k-1],边界条件为c[0]=1; 其递推解 ...

Wed Feb 28 06:59:00 CST 2018 2 3834
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM