卢卡斯定理/Lucas 定理小结

Lacus

求:

\[\Large C_m^n~mod ~p \]

则:

\[\Large C_m^n~mod~p=C_{\frac{m}{p}}^{\frac{n}{p}} \times C_{m~mod~p}^{n~mod~p}~mod~p \]

由于 \(C_{m~mod~p}^{n~mod~p}\) 上下两项都比 \(p\) 小,可以直接套组合数公式。

而前面 \(C_{\frac{m}{p}}^{\frac{n}{p}}\) 可以继续套lucas求解。

证明懒得写。

Code:

int lucas(int m, int n)
{
	if(m==0) return 1; 
	return lucas(m/p, n/p)*C(m%p, n%p)%p; 
}
posted @ 2021-12-07 17:47  zhangtingxi  阅读(47)  评论(0编辑  收藏  举报