exLucas定理

模板
这好像不是个定理……
看起来是个算法,但是不知道为什么大家都叫它定理,所以我也跟着写了……
还有,这玩意儿好像跟Lucas定理没有半毛钱关系,不知道为什么叫exLucas……

前置知识

为了学会这个“定理”,你需要了解几样东西:

  1. 质因数分解
  2. CRT(中国剩余定理)
  3. 逆元
  4. 其他基础的数论
  5. 组合数的定义(???)
  6. 好的视力,或者一个放大镜(因为有的又有分数又有上下标,很容易看不清)

这些知识如果不会,可以参考我的另一篇博客(5、6除外)

规定

下面的讲解有几个规定:

  1. p p p为模数
  2. 除了 p p p以外的所有含 p p p的字母默认为质数
  3. 所有的数都是非负整数
  4. i i i的范围默认为距离这个 i i i最近(上面)的一次定义的 i i i的范围(可能在式子中)
  5. 与第四条类似, ( ∗ ) (*) ()式默认为距离这个 ( ∗ ) (*) ()式最近(上面)的一次定义的 ( ∗ ) (*) ()

分解p

首先,我们要先将 p p p进行质因数分解
p = ∏ i = 1 t p i α i p=\prod \limits_{i=1}^{t}p_i^{\alpha_i} p=i=1tpiαi
这样,我们就只需要计算 ( n m ) m o d p i α i ( ∗ ) \binom{n}{m}modp_i^{\alpha_i}(*) (mn)modpiαi(),最后再用一下CRT就好了

算(∗)式!

看到这个式子,有的同学就会说:看! p i p_i pi是质数!直接用Lucas定理算!
……首先,我说过,这玩意儿跟Lucas定理没有半毛钱关系;其次,它还有个次数 α i \alpha_i αi啊!
首先,我们由组合数的定义可以知道: ( n m ) = n ! m ! ( n − m ) ! \binom{n}{m}=\frac{n!}{m!(n-m)!} (mn)=m!(nm)!n!
这时候,又有同学要说了: 1 m ! ( n − m ) ! \frac{1}{m!(n-m)!} m!(nm)!1直接求逆元啊!
……求逆元的前提是互质啊!你看 m ! ( n − m ) ! m!(n-m)! m!(nm)!这个阶乘,它能跟 p i p_i pi互质吗?
所以,我们得把这玩意儿中的 p i p_i p

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值