建议先看~
一、可重集
1.1 可重集的全排列
可重集全排列是什么?
给定一个包含n个元素的集合,其中元素可以分为m类,(同类元素完全相同,不同类元素完全不同),第i类有ai种元素,现在要求出这个集合的全排列数量。
如何推导?
首先考虑组合数的推导过程:
我们知道对于n个元素选m个的情况,每个组合可以对应m!个排列,而每个排列唯一对应于一个组合,所以才有
而对于这里可重集全排列如果不考虑类的概念,总的方案数显然是n!种,然后考虑第一类:每个全排列对应a1!种排列方案,第二类.第三类…第m类,类推有:n!除以ai的连乘
n ! ∏ i = 1 m a i \frac {n!}{\prod_{i=1}^{m} a_i} ∏i=1main!
1.2 可重集的组合数
给定一个包含m类元素的集合,每类元素无限多,现在要求出从这个集合中选n个元素的方案数。
如何解?
考虑隔板法:
m类元素需要m-1个隔板,那么与n个元素共同占用n+m-1个位置,而隔板可以随便放,所以是
( n + m − 1 n ) \binom{n+m-1}{n} (nn+m−1)
思考:如果限制每类元素的个数如何解决?
二、卡特兰数
2.1 二叉树计数
我们根据定义不妨记包含i个节点的本质不同的二叉树有 C i C_i Ci个,也称为形态数。
考虑平凡情况:当i = 0或i = 1,显然 C i = 1 C_i = 1 Ci=1
当i>=2时,考虑乘法原理
当左子树的节点数为i时,那么右子树的节点数为n-i-1。那么左子树的形态数为 C i C_i Ci,右子树的形态数为C_{n-i-1},所以,由乘法原理,当左子树有i个点时,总方案数为 C i C n − i − 1 C_iC_{n-i-1} CiCn−i−1,
所以有:
上式即卡特兰数的递推式
下面给出卡特兰数的通项公式:
C
n
=
(
2
n
n
)
n
+
1
C_n = \frac{\binom{2n}{n}}{n+1}
Cn=n+1(n2n)
三、斯特林数
3.1 经典模型
3.1.1 子集划分问题
3.1.2 轮换划分问题
3.2
未完待续~