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