扩展卢卡斯定理,嗯~~~
首先要需要学会扩展欧几里得算法和中国剩余定理。至于卢卡斯定理,它和扩展卢卡斯定理并没什么联系吧……
扯dan
(建议跳过)
首先讲一下扩展卢卡斯用于什么地方。
对于组合数取模C(n,m)%p当n和m范围极大但模数p较小时我们会考虑用卢卡斯定理来求解,但使用卢卡斯定理要求p是一个素数。所以当p不是素数是怎么办呢?这时就要用到扩展卢卡斯定理了,
浅谈扩展Lucas定理
我们知道:p=∏pkiip=∏piki 那么显然,如果我们知道C(n,m)C(n,m)在modpkiimodpiki意义下的答案,那么显然可以用CRT(中国剩余定理)进行合并。所以现在我们只需考虑C(n,m)modpkiiC(n,m)modpiki即可。
我们回归到组合数取模的最简单最暴力的方法。那就是:
n!m!(n−m)!modpkiin!m!(n−m)!modpiki
我们将 n!n! 、 m!m! 和 (n−m)!(n−m)! 三者分开来看,暴力算是 O(