大组合数
程序员文章站
2022-03-13 16:44:59
...
额,总感觉忘了点什么,原来前面还有几个知识点没整理。。。。
大组合数:
这个式子算起来应该没难度把,当然阶乘谁不会算,那么问题来了如果n和m很大呢,那阶乘早爆了,所以就有了大组合数。
卢卡斯说:
C(n, m) % p = C(n / p, m / p) * C(n%p, m%p) % p;
如果 C(n / p, m / p) 或C(n%p, m%p) 也太大呢?
卢卡斯说:…………
(递归,递归,递归。。。疯狂暗示)
(额(⊙﹏⊙),反正我没看懂)
但代码简介易懂:
LL Lucas(LL n, LL m, int p){
return m ? Lucas(n/p, m/p, p) * comb(n%p, m%p, p) % p : 1;
}