组合数公式
组合数C(n,m)=Cmn=(nm)
递推式
C(n,m)=C(n−1,m−1)+C(n−1,m)
组合数完全累和
n∑i=0C(n,i)=2n
奇偶累和
n∑0(−1)iC(n,i)=[n=0]
∑⋯∑→C()型
我们熟知的有
n∑i=11=n=C(n,1)n∑i=1n∑j=i+11=n(n−1)2更一般的
∑∑...∑1=C(n,k)(k个∑)
… ⋅C(n,i)型
∑i⋅C(n,i)
=∑i⋅n!i!⋅(n−i)!
=∑n!(i−1)!⋅(n−i)!
=∑n⋅(n−1)!(i−1)!⋅(n−i)!
=n⋅∑C(n−1,i−1)
同理的
∑i⋅(i−1)⋅C(n,i)=n⋅(n−1)⋅∑C(n−2,i−2)带入还能得到
∑i2⋅C(n,i)=n⋅(n−1)⋅∑C(n−2,i−2)+n⋅∑C(n−1,i−1)更一般的,可以表示成
∑C(i,k)⋅C(n,i)=C(n,k)⋅∑C(n−k,i−k)
多组合数相乘型
k∑i=0C(n,i)⋅C(m,k−i)=C(n+m,k)
其实就是两个组合问题的组合,可以直接通过实际意义得到
Lucas定理
C(n,m)modp=C(nmodp,mmodp)⋅C(⌊np⌋,⌊mp⌋)modp
预处理阶乘逆元后,可以用于解决模数较小而n,m较大的组合数问题
前缀和
列
n∑i=0(im)=(n+1m+1)
由递推式(im)=(i−1m)+(i−1m−1)容易迭代发现
行
令 S(n,m)=∑mi=0C(n,i)
S(n,m)+S(n,m+1)
=∑mi=0(C(n,i)+C(n,i+1))+C(n,0)
=∑C(n+1,i+1)+C(n,0) (带入递推公式)
=S(n+1,m+1)
又∵S(n,m)+S(n,m+1)=2S(n,m+1)−C(n,m+1)
∴S(n,m)=2S(n−1,m)−C(n−1,m)
(待补。。。)