排列数
从n个物品中不放回地依次选m个物品,考虑顺序,有多少种方案,记作Anm
Anm=(n−m)!n!
组合数
从n个物品中不放回地依次选m个物品,不考虑顺序,有多少种方案,记作Cnm
Cnm=m!∗(n−m)!n!
求组合数常用公式
定义式
Cnm=m!∗(n−m)!n!
当n,m很大时,预处理阶乘和逆元,预处理O(n),求组合数O(1)
递推式
Cnm=m!∗(n−m)!n!=(m−1)!∗(n−m+1)!n!∗mn−m+1=Cnm−1∗mn−m+1
杨辉三角
Cnm=m!∗(n−m)!n!=m!∗(n−m)!(n−1)!∗(n−m+m)
=m!∗(n−m)!(n−1)!∗(n−m)+m!∗(n−m)!(n−1)!∗m
=m!∗(n−m−1)!(n−1)!+(m−1)!∗(n−m)!(n−1)!
=Cn−1m+Cn−1m−1
当模数不是质数的时候,预处理O(n2),求组合数O(1)
组合数常用性质及证明
性质一
Cnm=Cnn−m
证明:
法一:利用组合数意义理解
在n个当中选m个,相当于在n个当中不选n−m个
法二:公式表示
Cnm=m!∗(n−m)!n!
Cnn−m=(n−m)!∗(n−(n−m))!n!=m!∗(n−m)!n!
性质二
Cn+m+1m=i=0∑mCn+ii
证明:
利用画图以及杨辉三角得证

性质三
Cnm∗Cmr=Cnr=Cn−rm−r
证明:
法一:利用组合数意义理解
在n个当中选m个,再在选出的m个当中选r个
相当于在n个当中选r个,再在剩下的n−r个中选还需要的m−r
法二:公式推导
Cnm∗Cmr=m!∗(n−m)!n!∗r!∗(m−r)!m!=m!∗r!∗(n−m)!∗(m−r)!n!∗m!
=r!∗(n−m)!∗(m−r)!n!=r!∗(n−m)!∗(m−r)!∗(n−r)!n!∗(n−r)!
=r!∗(n−r)!n!∗(m−r!)∗(n−m)!(n−r)! {(n−r)−(m−r)=n−m}
=Cnr∗Cn−rm−r
性质四(二项式定理)
i=0∑n{Cni∗xi}=(1+x)n
i=0∑nCni=2n (x=1)
证明:
组合数意义理解
(1+x)n=(1+x)∗(1+x)∗...∗(1+x),n个(1+x)相乘
(1+x)在乘法中的贡献相当于要么选1,要么选x
有i个(1+x)中选x,产生的贡献就是xi,剩下的n−i个(1+x),产生的贡献是1
在n个中任意选i个,相当于Cni
性质五
i=0∑n{(−1)i∗Cni}=0
证明:
①:若n为奇数
则∑i=0n共有n+1项(偶数项),而(−1)i∗Cni=(−1)i∗Cnn−i
因为n为奇数,所以当i为奇数时,n−i为偶数,当i为偶数时,n−i为奇数
所以i,n−i奇偶性不同,那么(−1)i+(−1)n−1相当于(−1)奇数次方+(−1)偶数次方=0
(−1)i∗Cni+(−1)n−i∗Cnn−i=0
偶数项刚好每一对可以相互抵消,所以性质显然成立
②:若n为偶数
(−1)0=(−1)n=1,先把i=0,i=n的情况拆出来,用杨辉三角展开中间项
i=0∑n{(−1)i∗Cni}=Cn0+Cnn+i=1∑n−1{(−1)i∗(Cn−1i+Cn−1i−1)}
Cn0+Cnn+i=0∑n−2{(−1)i+1∗Cn−1i}+i=1∑n−1{(−1)i∗Cn−1i}
把前一个求和加上(−1)n∗Cn−1n−1一项,后一个求和加上(−1)0∗Cn−10
Cn0+Cnn+i=0∑n−1{(−1)i∗Cn−1i}−Cn−1n−1+i=1∑n−1{(−1)i∗Cn−1i}−Cn−10
注意n−1为奇数,奇数情况已经证明了,故这两个公式直接等于0,删掉,原式转化为
Cn0+Cnn−Cn−10−Cn−1n−1=0
性质六
Cn0+Cn2+...=Cn1+Cn3+...=2n−1
证明:
用杨辉三角公式暴力展开寻找规律
①假设n为奇数
Cn0+Cn2+...+Cnn−1=Cn−10+Cn−11+Cn−12+Cn−13+Cn−14+...+Cn−1n−2+Cn−1n−1
Cn1+Cn3+...+Cnn=Cn−10+Cn−11+Cn−12+Cn−13+...+Cn−1n−1+Cn−1n
发现每一项都是相等的,第二个式子多出来的Cn−1n=0,所以相等得证
又根据性质四∑i=0nCni=2n,前两个式子相加刚好等于∑i=0nCni,又相等,/2即为2n−1
②假设n为偶数
Cn0+Cn2+...+Cnn=Cn−10+Cn−11+Cn−12+Cn−13+Cn−14+...+Cn−1n−1+Cn−1n
Cn1+Cn3+...+Cnn−1=Cn−10+Cn−11+Cn−12+Cn−13+...+Cn−1n−2+Cn−1n−1
仍然两两对应相等,第一个式子多出来的Cn−1n=0,后面的方法与奇数情况一样,不赘述
性质七
Cn+mr=i=0∑min(n,m,r){Cni∗Cmr−i}
Cn+mn=Cn+mm=i=0∑min(n,m){Cni∗Cmi},(r=n∣∣r=m)
证明:
用组合数意义理解
把n+m个分成n个一组,m个一组,总共选r个,相当于n个中选i个,m个中选r−i个
性质八
m∗Cnm=n∗Cn−1m−1
证明:
m∗Cnm=m∗m!∗(n−m)!n!=n∗(m−1)!∗(n−m)(n−1)!=n∗Cn−1m−1
性质九
i=0∑n{Cni∗i}=n∗2n−1
**证明:**咕咕咕咕咕
性质十
i=0∑n{Cni∗i2}=n∗(n+1)∗2n−2
性质十一
i=0∑n{(Cni)2}=C2∗nn