组合数公式

组合数公式


递推式

[C(n,m)=C(n-1,m-1)+C(n-1,m)
]


组合数完全累和

[sum_{i=0}^n C(n,i) =2^n
]


奇偶累和

[sum_0^n (-1)^i C(n,i)=[n=0]
]


$sumcdotssum ightarrow C() $型

我们熟知的有

[sum_{i=1}^{n}1=n = C(n,1)
]

[sum _{i=1}^{n} sum_{j=i+1}^{n} 1= frac{n(n-1)}{2}
]

更一般的

[underbrace {sum sum … sum} 1 =C(n,k)
]

[(k个sum)
]


$ … cdot C(n,i)$型

$ sum i cdot C(n,i) $

$ = sum {i cdot frac{n!}{i! cdot (n-i)!}}$

$ = sum { frac{n!}{(i-1)! cdot (n-i)!}}$

(=sum {n cdot frac {(n-1)!} {(i-1)! cdot (n-i)!}})

(=ncdot sum C(n-1,i-1))

同理的

[sum icdot (i-1)cdot C(n,i)=n cdot (n-1) cdot sum C(n-2,i-2)
]

带入还能得到

[sum i^2 cdot C(n,i) = n cdot (n-1) cdot sum C(n-2,i-2)+n cdot sum C(n-1,i-1)
]

更一般的,可以表示成

[sum C(i,k) cdot C(n,i) =C(n,k) cdot sum C(n-k,i-k)
]


多组合数相乘型

(sum_{i=0}^{k} C(n,i)cdot C(m,k-i) = C(n+m,k))

其实就是两个组合问题的组合,可以直接通过实际意义得到


Lucas定理

$ C(n,m) mod p = C(n mod p,m mod p) cdot C(lfloorfrac{n} {p}floor, lfloor frac{m} {p}floor) mod p$

预处理阶乘逆元后,可以用于解决模数较小而(n,m)较大的组合数问题


组合数前缀和

(S(n,m)=sum_{i=0}^{m} C(n,i))

(S(n,m)+S(n,m+1))

(=sum_{i=0}^{m}(C(n,i)+C(n,i+1))+C(n,0))

(=sum C(n+1,i+1)+C(n,0)) (带入递推公式)

(=S(n+1,m+1))

(ecause S(n,m)+S(n,m+1)=2S(n,m+1)-C(n,m+1))

( herefore S(n,m)=2S(n-1,m)-C(n-1,m))

(待补。。。)

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注