码迷,mamicode.com
首页 > 其他好文 > 详细

Lucas 卢卡斯定理

时间:2018-07-28 13:52:19      阅读:150      评论:0      收藏:0      [点我收藏+]

标签:amp   开始   height   bsp   16px   mes   style   png   nbsp   

Lucas:

卢卡斯定理说白了只有一条性质

$$ C^n_m \equiv C^{n/p}_{m/p} \times C^{n \bmod p}_{m \bmod p} \ (mod \ \ p) $$

用于 m,n 很大时快速求组合数。(p 为质数)

CODE:

1 long long Lucas(long long n,long long m){
2     if(m==0)return 1;
3     if(n<m)return 0;
4     if(n<p&&m<p)return fac[n]*inv[n-m]%p*inv[m]%p;
5     return Lucas(n/p,m/p)*Lucas(n%p,m%p)%p;
6 }

 证明:

前置技能:二项式定理

技术分享图片

对于任意质数p,根据费马小定理有:

技术分享图片

然后我们把(1+x)^n这个式子处理一下:

技术分享图片

然后同时我们还有:

技术分享图片

观察一下两个式子x的m次方的系数,可以得到:

技术分享图片

然后我们回到最开始的递归形式的那个式子,会发现…… 就证完了OvO

( 引用自 hy 大佬课件)

Lucas 卢卡斯定理

标签:amp   开始   height   bsp   16px   mes   style   png   nbsp   

原文地址:https://www.cnblogs.com/ezoiLZH/p/9381441.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!