卡特兰数 (Catalan Number,明安图数)

image.png

问题:存在一个数列H,仅包含-1,1两种数字,其中数列长度为2n,存在n个-1,n个1,则其元素求和 = 0,要求生成的数列符合其左子串Sh中元素相加>=0,计算在长度为2n的情况下,存在多少种该数列。

求解:
由排列组合可知,全排列E的情况总数为:|E| = 2n!/n!n!
设目标数列为H,其排列总数为|H|,则目标数列在全集中的补集数量为|M|
可的等式:|H| + |M| = |E|
由于M中的数列不满足要求,则一定存在至少一个子串Sm的元素总和 < 0,设第一不符合条件的子串为
M(k)
M1,M2,M3,......Mk
由于M(k)是第一个不符合条件的子串,则该子串的元素总数一定为奇数,并且前k-1项总和必为0,第k项为-1,子串中包含(k-1)/2 个 +1,(k-1)/2 + 1 个 -1。

现作如下一一映射,该序列前k项元素取反,即-1变为+1,+1变为-1,其他项保持不变。
M1,M2,M3,....Mk,Mk+1,Mk+2......M2n 此时 n个-1,n个+1
-M1,-M2,M3,...-Mk,Mk+1,Mk+2.......M2n 此时 n+1个+1,n-1个-1
现求|M|的总数,转变为n+1个+1和n-1个-1的全排列,即
|M| = 2n!/(n+1)!(n-1)!

依据以上等式,可的
|H|+|M|=|E|
|H| = |E| - |M|
|H| = 2n!/n!n! - 2n!/(n+1)!(n-1)!

卡特兰数:Cn = 2n!/n!n! - 2n!/(n+1)!(n-1)!

卡特兰数的应用场景:
1.二叉搜索树,在有n个元素的场景下,具有多少中可能的拓扑结构。
2.有n个元素进行出栈/入栈操作,有多少种操作序列。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Catalan数——卡特兰数 今天阿里淘宝笔试中碰到两道组合数学题,感觉非常亲切,但是笔试中失踪推导不出来后来查了...
    mylocal阅读 3,868评论 0 0
  • 母函数 对于一般的排列组合算法题, 可首先尝试通过母函数来解决。 在数学中,某个序列的母函数(Generating...
    Teci阅读 8,426评论 3 27
  • catalan介绍    Catalan number,卡特兰数又称卡塔兰数,是组合数学中一个常出现在各种计数问题...
    one_zheng阅读 4,509评论 0 1
  • 首先来自百度百科Q:一个栈(无穷大)的[进栈]序列为1,2,3,…,n,有多少个不同的[出栈]序列?A1:首先,我...
    shuff1e阅读 2,833评论 0 0
  • 定义 1.卡特兰数是一种数列,以比利时的数学家欧仁·查理·卡塔兰命名。2.卡特兰数列:1, 1, 2, 5, 14...
    面包牛奶wlq阅读 7,755评论 0 2

友情链接更多精彩内容