内容
Lucas定理是用来求
C
n
m
m
o
d
p
C_n^mmod\ p
Cnmmod p的值,
p
p
p为素数的值
C
(
m
,
n
)
%
p
=
C
(
n
/
p
,
m
/
p
)
∗
C
(
n
%
p
,
m
%
p
)
%
p
C(m,n)\%p=C(n/p,m/p)*C(n\%p,m\%p)\%p
C(m,n)%p=C(n/p,m/p)∗C(n%p,m%p)%p
证明
∵
p
是
素
数
\because p是素数
∵p是素数
∴
C
p
k
=
p
k
C
p
−
1
k
−
1
≡
0
(
k
>
0
&
&
k
<
p
)
\therefore C_p^k=\frac{p}{k}C_{p-1}^{k-1}\equiv 0\ \ (k>0\&\&k<p)
∴Cpk=kpCp−1k−1≡0 (k>0&&k<p)
(
1
+
x
)
p
=
1
+
C
p
1
x
1
+
⋯
+
C
p
p
x
p
≡
1
+
x
p
(
m
o
d
p
)
(1+x)^p=1+C_p^1x^1+\cdots+C_p^px^p\equiv1+x^p(mod\ p)
(1+x)p=1+Cp1x1+⋯+Cppxp≡1+xp(mod p)
设
n
=
t
p
+
b
设n=tp+b
设n=tp+b
(
1
+
x
)
n
=
(
1
+
x
)
t
p
+
b
=
(
(
1
+
x
)
p
)
t
(
1
+
x
)
b
≡
(
1
+
x
p
)
t
(
1
+
x
)
b
(
m
o
d
p
)
(1+x)^n=(1+x)^{tp+b}=((1+x)^p)^t(1+x)^b\equiv(1+x^p)^t(1+x)^b\ \ (mod\ p)
(1+x)n=(1+x)tp+b=((1+x)p)t(1+x)b≡(1+xp)t(1+x)b (mod p)
(
1
+
x
p
)
t
(
1
+
x
)
b
(
m
o
d
p
)
=
∑
i
=
0
t
(
x
p
)
t
∗
∑
j
=
0
b
x
b
(1+x^p)^t(1+x)^b\ \ (mod\ p)=\sum_{i=0}^{t}(x^{p})^t*\sum_{j=0}^{b}x^b
(1+xp)t(1+x)b (mod p)=∑i=0t(xp)t∗∑j=0bxb
∵
b
<
p
\because b<p
∵b<p
∴
x
k
的
系
数
只
有
t
=
k
p
,
b
=
k
%
p
时
\therefore x^k的系数只有t=\frac{k}{p},b=k\%p时
∴xk的系数只有t=pk,b=k%p时
∴
C
n
k
≡
C
n
/
p
k
/
p
∗
C
n
%
p
k
%
p
(
m
o
d
p
)
\therefore C_n^k\equiv C_{n/p}^{k/p}*C_{n\%p}^{k\%p}\ \ (mod\ \ p)
∴Cnk≡Cn/pk/p∗Cn%pk%p (mod p)