蒟蒻TJY的博客

Lucas定理

\[\binom{sp+q}{tp+r}\equiv\binom{s}{t}\binom{q}{r}\pmod{p} \]

其中\(p\)为质数。

引理

\[\binom{p}{k}\equiv 0\pmod{p} \]

其中\(p\)为质数,\(0<k<p\)

\[\binom{p}{k}=\frac{p!}{k!(p-k)!} \]

可以发现分子中含因子\(p\),而分母中不含因子\(p\),而整体为整数,则引理得证。

证明

\[(1+x)^n\equiv(1+x)^{sp+q}\equiv((1+x)^p)^s(1+x)^q\pmod{p} \]

由二项式定理及引理,\((1+x)^p\)的展开式中\(x^1,x^2,\cdots,x^{p-1}\)的系数皆同余\(0\),故略去。

\[(1+x)^{sp+q}\equiv(1+x^p)^s(1+x)^q \]

注意:只能对多项式的系数\(\mod{p}\),因为我们最后要令两边对应次数项的系数相等,因此不能把\(x^p\)替换为\(x\)

观察到,在\((1+x^p)^s\)的展开式中,只包含\(x^{kp}\)形式的项。而在\((1+x)^q\)的展开式中,最高次项小于\(x^p\)。那么,令两侧\(x^{tp+r}\)的系数相等,右侧就只能有唯一的一对乘积了。

那么就得证:

\[\binom{sp+q}{tp+r}\equiv\binom{s}{t}\binom{q}{r}\pmod{p} \]

或者不严谨地写成:

\[\binom{n}{m}\equiv\binom{n/p}{m/p}\binom{n\%p}{m\%p}\pmod{p} \]

代码

int C(int n,int m){
    if(n<m)return 0;
    if(n<p&&m<p)return fac[n]*finv[m]%p*finv[n-m]%p;
    return C(n/p,m/p)*C(n%p,m%p)%p;
}

对于\(n,m<p\),预处理出答案。

时间复杂度\(O(log_p(n))\),预处理\(O(p)\)

posted @ 2020-08-23 22:35  蒟蒻TJY  阅读(233)  评论(2)    收藏  举报