欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

组合数学详解

最编程 2024-04-08 18:52:20
...

正题

排列组合

( a + b ) m = ∑ i = 0 m C m i a i b m − i ∑ i = 0 m C n i C m i = C n + m m ∑ i = 0 n i C n i = 2 n − 1 n ∑ i = 0 n i 2 C n i = 2 n − 2 n ( n + 1 ) ∑ i = 0 n C i k = C n + 1 k + 1 C n r C r k = C n k C n − k r − k C n k k i ‾ = C n − i k − i n i ‾ \\(a+b)^m=\sum_{i=0}^m C_m^i a^ib^{m-i} \\\sum_{i=0}^m C_n^i C_m^i =C_{n+m}^{m} \\\sum_{i=0}^n iC_n^i=2^{n-1}n \\\sum_{i=0}^n i^2C_n^i =2^{n-2}n(n+1) \\\sum_{i=0}^n C_i^k=C_{n+1}^{k+1} \\C_n^r C_r^k=C_n^k C_{n-k}^{r-k} \\C_n^k k^{\underline i}=C_{n-i}^{k-i}n^{\underline i} (a+b)m=i=0mCmiaibmii=0mCniCmi=Cn+mmi=0niCni=2n1ni=0ni2Cni=2n2n(n+1)i=0nCik=Cn+1k+1CnrCrk=CnkCnkrkCnkki=Cnikini
1.广义二项式定理。
2.可以看成 n n n 个里面选 i i i 个,再从 m m m 个里面选 m − i m-i mi 个,考虑直接从前 n n n 个和后 m m m 个里面选出 m m m 个,每一个方案肯定都会被算到。
3.相当于计算的是子集大小和,对于每一个元素来说,被计算的次数肯定是 2 n − 1 2^{n-1} 2n1,当然也可以用导数证明
4.计算的是选出一个子集,子集大小的平方和,相当于把两个球放进 i i i 个有标号的箱子的方案数,同样可以反着考虑,假若只有一个箱子有球,那么答案是 n 2 n − 1 n2^{n-1} n2n1 ,如果有两个箱子有球,那么答案就是 n ( n − 1 ) 2 n − 2 n(n-1)2^{n-2} n(n1)2n2 。同样也可以用生成函数求导证明。
考虑把上面的两条式子推广,那么就有
∑ i = 0 n i k C n i = ∑ j = 1 k C n j S ( k , j ) j ! 2 n − j \sum_{i=0}^n i^k C_n^i=\sum_{j=1}^k C_n^j S(k,j)j!2^{n-j} i=0nikCni=j=1kCnjS(k,j)j!2nj
5.第五条可以用组合意义来证明,考虑在一个长为 n + 1 n+1 n+1 的序列当中选出 k + 1 k+1 k+1 个数,左边相当于枚举所选中的最右边的数。用杨辉三角也很好证明,大概 C k k C_k^k Ckk 就是将挪到 C k + 1 k + 1 C_{k+1}^{k+1} Ck+1k+1上,然后不断两两相加就可以得到。
6.直接考虑每个点被染成第几种颜色就可以了。
7.化系数可得

二项式反演

二项式反演基于二项式定理,证明将两式相互带入即可,不再赘述。
f ( n ) = ∑ k = 0 n ( − 1 ) k C n k g ( k ) ⇔ g ( n ) = ∑ k = 0 n ( − 1 ) k C n k f ( k ) f ( n ) = ∑ k = 0 n C n k g ( k ) ⇔ g ( n ) = ∑ k = 0 n ( − 1 ) n − k C n k f ( k ) f ( k ) = ∑ i = k n ( − 1 ) i C i k g ( i ) ⇔ g ( k ) = ∑ i = k n ( − 1 ) i C i k f ( i ) f ( k ) = ∑ i = k n C i k g ( i ) ⇔ g ( k ) = ∑ i = k n ( − 1 ) i − k C i k f ( i ) f(n)=\sum_{k=0}^n(-1)^kC_n^kg(k)\Leftrightarrow g(n)=\sum_{k=0}^n(-1)^kC_n^kf(k)\\ f(n)=\sum_{k=0}^nC_n^kg(k)\Leftrightarrow g(n)=\sum_{k=0}^n(-1)^{n-k}C_n^kf(k)\\ f(k)=\sum_{i=k}^n (-1)^iC_i^kg(i)\Leftrightarrow g(k)=\sum_{i=k}^n(-1)^iC_i^kf(i)\\ f(k)=\sum_{i=k}^nC_i^kg(i)\Leftrightarrow g(k)=\sum_{i=k}^n (-1)^{i-k}C_i^kf(i)\\ f(n)=k=0n(1)kCnkg(k)g(n)=k=0n(1)