[学习笔记]组合数取模的几种求法
2019-04-13 15:48发布
生成海报
一、引入
给定
n ,
m ,
p ,求:
(mn)modp
其中
(mn) 为组合数,表示
n 个元素中选出
m 个的方案数。
即:
(mn)=m!×(n−m)!n!
特殊地,我们规定
(0n)=1 且当
n<m 时
(mn)=0 。
二、 n,m≤3,000
(mn)=(mn−1)+(m−1n−1)
(1)组合意义:
考察
n 个元素中的最后一个元素是否被选出。
如果没有被选出,那么前面的
n−1 个元素必须选出
m 个,即
(mn−1) 。
如果被选出,那么前面的
n−1 个元素必须选出
m−1 个,即
(m−1n−1) 。
(2)数学推导:
(mn−1)+(m−1n−1)=m!×(n−1−m)!(n−1)!+(m−1)!×(n−m)!(n−1)!
=m!×(n−m)!(n−1)!×(n−m)+(n−1)!×m=m!×(n−m)!n!=(mn)
(3)生成函数:
根据二项式定理
(a+b)n=∑i=0n(in)aibn−i ,数列
(0n),(1n),(2n),...,(nn)
的生成函数为
(1+x)n 。
于是
(mn) 就是
(1+x)n 的
m 次项。
设
(F(x))k 表示多项式
F(x) 的
k 次项。
则:
(mn−1)+(m−1n−1)=((1+x)n−1)m+((1+x)n−1)m−1
=((1+x)n−1)m+(x(1+x)
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮