浅谈扩展卢卡斯定理

本文介绍了扩展卢卡斯定理在处理组合数取模问题时的应用,特别是在模数不是素数的情况下。通过结合扩展欧几里得算法和中国剩余定理,可以解决C(n,m) % p的问题,其中p为合数。文章讨论了如何利用扩展Lucas定理和中国剩余定理合并不同模因子的答案,适用于模数在1e7左右的情况。" 123366814,12739696,Golang循环输出示例,"['golang', '开发语言', '后端']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

扩展卢卡斯定理,嗯~~~
首先要需要学会扩展欧几里得算法中国剩余定理。至于卢卡斯定理,它和扩展卢卡斯定理并没什么联系吧……

扯dan

(建议跳过)
首先讲一下扩展卢卡斯用于什么地方。
对于组合数取模C(n,m)%p当n和m范围极大但模数p较小时我们会考虑用卢卡斯定理来求解,但使用卢卡斯定理要求p是一个素数。所以当p不是素数是怎么办呢?这时就要用到扩展卢卡斯定理了,

浅谈扩展Lucas定理

我们知道:p=pkiip=∏piki 那么显然,如果我们知道C(n,m)C(n,m)modpkiimodpiki意义下的答案,那么显然可以用CRT(中国剩余定理)进行合并。所以现在我们只需考虑C(n,m)modpkiiC(n,m)modpiki即可。
我们回归到组合数取模的最简单最暴力的方法。那就是:

n!m!(nm)!modpkiin!m!(n−m)!modpiki

我们将 n!n! m!m! (nm)!(n−m)! 三者分开来看,暴力算是 O(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值