Lucas定理(卢卡斯定理)

Lucas定理

  • 计算 \(\Large {n \choose k}\) \(\large \mod \ P\),其中 \(P\) 为质数。

  • \[{ n \choose k } \equiv { n\%P \choose k\%P } \times {\lfloor n/P \rfloor \choose \lfloor k/P \rfloor}\pmod P \]

exLucas

  • 计算 \(\Large {n \choose k}\) \(\mod P\),其中 \(P\) 不保证为质数。

  • 先将 \(P\) 分解质因数,\(P=\large\prod p_i^{k_i}\)

  • 分别计算 \(\Large {n \choose k}\) \(\large \mod \ {p_i^{k_i}}\) 的结果再用CRT合并起来就可以。

  • \(\Large {n \choose k}= \frac{n!}{k!(n-k)!}\),因此只需要分别算出 \(\large n! \mod \ {p_i^{k_i}}\)\(\large k! \mod \ {p_i^{k_i}}\)\(\large (n-k)! \mod \ {p_i^{k_i}}\) 即可,同时存储分子分母中 \(p_i\) 的次数用于约分。

posted @ 2022-10-06 14:23  「ycw123」  阅读(39)  评论(0编辑  收藏  举报