一般情况下,我们计算大组合数取模问题是用递推公式进行计算的:
其中p相对较小的素数。但是当n和m过大时,计算的耗费就急剧增加,在实践中不适用。当这时候就需要Lucas定理进行快速运算:
其中:
证明方法也很简单,主要用到如下等式:
应用这个公式,可以的到如下递归式
这里的Lucas(n,m,p)就是C_n^m\ mod\ p,递归终点就是当n=0的时候。时间复杂度是O(log_p(n)*p).
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有