lucas定理

Lucas定理是用来求 c(n,m) mod p 的值(p为素数)

一般用于求组合数,防止其爆long long

Lucas定理:我们令n=sp+q , m=tp+r .(q ,r ≤p)

那么:

C(sp+q,tp+r)与C(s,t)*C(q,r)同余

(在编程时你只要继续对

调用Lucas定理即可。

代码可以递归的去完成这个过程,其中递归终点为t = 0

时间O(logp(n)*p):)

posted @ 2017-01-17 14:50  Pic  阅读(101)  评论(0编辑  收藏  举报