知识点整理--组合数学
定义(#86debe)
组合:C(n,m)表示从n个元素中,取任意的m个元素的方案数。
定义式: 递推式:C(n,m)=C(n-1,m-1)+C(n-1,m)
排列:A(n,m)表示从n个元素中,取任意的m个元素并排列好的方案数
常用公式
1. C(n,m)=C(n,n-m)
2. ∑C(n,i)=2^n
证明:从n个元素中任意取i个(0<=i<=n)的所有不同方案。
首先,∑C(n,i)表示从n个元素中任意取0个的所有不同取法+从n个元素中任意取1个的所有不同取法+从n个元素中任意取2个的所有不同取法+……+从n个元素中任意取n个的所有不同取法的总和。
其次考虑对于n个元素中的任意一个,记作A,则在每次取时,A都有取或不取两种选择,并对于A的选择是独立的,与其他元素无关。所以∑C(n,i)=2^n。
3. ∑i*C(n,i)=n*2^(n-1)
意义:i*C(n,i) 表示先从n个元素里取出i个元素,再从这i个元素中取出一个元素。
证明:参考公式2
4. ∑(i<=n)C(i,m)=C(n+1,m+1)
放到杨辉三角上就是紫色部分的和等于其右下角的值(粉色圈里)
5. ∑(i<=k)C(n,i)*C(m,k-i)=C(n+m,k)
卡特兰数
括号匹配:包含2n个括号的合法括号序列有多少个
将左括号看作0,右括号看作1,本问题就变成了:求序列任意前缀0的个数大于或等于1的个数
那么对于一个非法序列,一定存在某个最短前缀中,1的个数比0的个数多1。此时我们将此前缀01取反,剩下的不变,最后得到序列中有n+1个0和n-1个1。
得到的方案数C(2n,n-1)
另外,此过程是可逆的,也就意味着对于合法序列,我们可以将其01取反变成非法序列。
通过网格:从坐标(0,0)到(n,n),求不跨过对角线的方案数。
将向右走记作0,向上走记作1,同上。
三角划分:给定一个凸N边形,求将其三角形化的方案数(划分成N-2个三角形)
f 是方案数,h是卡特兰数。
f(n)=h(n-2) (n=2,3,4,……)
公式:
1.递推式:
2.另类递推式:
3.递推式的解:
4.另类递推式的解:
5.打表结果:
1,1,2,5,14,42,132,429,1430……
Lucas定理
(待更新补充……)