卡特兰数及其应用

简介: 卡特兰数及其应用

前言

A和B是两个毫不相关的集合,但是集合的个数可数。只要能找到某一个映射 f ,让A集合里的一个样本x只对应B集合里的一个样本y;同时能找到一个映射g,让B里的某一个样本只对应A里的某一个样本。其中,f,g,A,B毫无关系,可以得到A的集合数量等于B的集合数量。

卡特兰数

卡特兰数又称卡塔兰数,英文名Catalan number,是组合数学中一个常出现在各种计数问题中出现的数列。其前几项为:
1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900, 2674440, 9694845, 35357670, 129644790, 47 7638700,
1767263190, 6564120420, 24466267020, 91482563640,
343059613650, 1289904147324, 4861946401452,...

卡特兰数公式

k(0)= 1,k(1)= 1时,如果接下来的项满足:
k(n)= k(0) k(n- 1)+ k(1) k(n- 2)+ ... + k(n- 2) k(1) + k(n- 1) k(0)
或者
k(n)= c(2n,n)- c(2n, n-1)
或者
k(n)= c(2n,n)/(n + 1)
就说这个表达式,满足卡特兰数,常用的是范式1和2,3几乎不会使用到

括号模型

什么叫括号模型:左右两边括号数量相等的情况下,有多少种合法情况

括号类型的违规和违法可以转换成卡特兰数的计算。

任何一个不合法的括号序列,存在一个最短前缀,其中最短前缀的右括号数量比左括号多一个

A集合是所有不合法的情况数,B集合中,有n+1个右括号,n-1个左括号,其中所形成的所有样子统称为B集合。

任何一个不合法的A集合元素中的x,通过某个映射,都能对应到B集合中的某个元素y。

这个映射就是:从最短前缀的下一个括号开始全部取反。
在这里插入图片描述
所以,n个左括号和n个右括号不合法的数量 == n+1个右括号和n-1个左括号形成的所有样子。

所以不合法的数量就是:一共2n个括号,选n+1个右括号。

k(n)= c(2n,n)- c(2n, n-1)

n个左括号和n个右括号的合法数量:

一共2n个括号,选n个括号放左括号 减去 一共2n个括号,选n+1个括号放右括号

或者

一共2n个括号,选n个括号放左括号 减去 一共2n个括号,选n-1个括号放左括号
在这里插入图片描述

卡特兰数相关应用

数字进出栈的方式

n个数字要进栈,一定要进n个数,出n个数,一共有多少进出栈的方式?

公司股票走势问题

假设某个公司股票的波动和走势只有两种情况,要么是往上45度,要么就是往下45度。问多少次交易过后,不会跌到X轴以下。
在这里插入图片描述

二叉树的组成方式

一共有N个无差别的结点,有多少种组成二叉树的方式?
在这里插入图片描述
在这里插入图片描述

等势(希尔伯特旅馆)

整数跟偶数的数量一样多?
任何一个整数*2都是偶数,任何一个偶数/2都是整数,互相建立了一一映射关系,所以数量就是一样多的。

长度不一样的两条线段上面点的个数一样多?比如长度为5和长度为10的两条线段上面的点的个数一样多?
在这里插入图片描述
长度为0的线段会有无数个点?
在这里插入图片描述

相关文章
|
5天前
|
算法 测试技术 C++
【数学归纳法 组合数学】容斥原理
【数学归纳法 组合数学】容斥原理
|
6月前
一个求公约数和公倍数的有趣求法
一个求公约数和公倍数的有趣求法
14 0
|
8月前
|
机器学习/深度学习
卡特兰数
卡特兰数
44 0
|
机器学习/深度学习 算法
LeetCode打卡 52八皇后Ⅱ&53最大子序和&54螺旋矩阵
n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。
98 0
LeetCode打卡 52八皇后Ⅱ&53最大子序和&54螺旋矩阵
Indivisibility——容斥原理的应用
题目描述 给一个数n,找出1 ~ n 范围内不被 2 ~ 10整除的数的个数
84 0