【数论】——欧拉定理与快速幂

【数论】——欧拉定理与快速幂

欧拉定理

  • 若正整数 a,b 互质,则有:(其中:$ phi(n)$ 为欧拉函数)
    a ϕ ( n ) ≡ 1 ( m o d   n ) a^{\phi(n)}\equiv 1\qquad (mod\ n) aϕ(n)1(mod n)

推论

  1. 费马小定理
    p 是质数,则对于任意整数 a,有:
    a p − 1 ≡ 1 ( m o d   p ) a^{p-1}\equiv 1\qquad (mod\ p) ap11(mod p)
  • 证明(构造函数法)——(来自 李煜东 《算法竞赛进阶指南》)
    在这里插入图片描述
  1. 若正整数 a,n 互质,则对任意正整数 a 有:
    a b ≡ a p   m o d   ϕ ( n ) ( m o d   n ) a^b \equiv a^{p\ mod \ \phi(n)}\qquad(mod\ n) abap mod ϕ(n)(mod n)
  • 证明(构造函数法)——(来自 李煜东 《算法竞赛进阶指南》)
    在这里插入图片描述

快速幂

  • 反复平方法
    k 位二进制可以表示所有 [1, 2 k − 1 2^k-1 2k1] 的所有数(状态压缩),由此性质,对于给定一个取模数 p,预处理:
    a 2 0   ( m o d   p ) , a 2 1 ( m o d   p ) , . . . , a 2 k ( m o d   p ) a^{2^0}\ (mod\ p),a^{2^1}(mod\ p),...,a^{2^k}(mod\ p) a20 (mod p),a21(mod p),...,a2k(mod p)
    然后将根据所求数的二进制表示每一位取出相乘即可求出要求的幂。
  • 代码
int qickmi(int a,int k,int p)// a^k%p
{
    int res = 1;
    // 要转为 LL 防止溢出
    while(k){
    	if(k&1)
            res = (long long)res * a % p;
        a = (long long)a * a % p;
        k >>= 1;
    }
    return res;
}

乘法逆元

  • 定义
    b,m 互质,并且有 b ∣ n b\mid n bn,则存在一个整数 x,使得
    a b ≡ a ∗ x ( m o d   m ) \frac{a}{b} \equiv a *x\qquad (mod\ m) baax(mod m)
    xb mod m 的乘法逆元,记作:
    b − 1 ( m o d   m ) b^{-1} \qquad (mod\ m) b1(mod m)
    变形后也可以得到:
    b ∗ b − 1 ≡ ( m o d   m ) b*b^{-1} \equiv \qquad (mod\ m) bb1(mod m)
  • 如果m是质数,则根据费马小定理:
    b m − 1 ≡ 1 ( m o d   m ) b^{m-1} \equiv 1 \qquad (mod\ m) bm11(mod m)
    代入上式
    b ∗ b m − 1 ≡ 1 ( m o d   m ) b*b^{m-1} \equiv 1 \qquad (mod\ m) bbm11(mod m)
    根据乘法逆元定义式,此时b的乘法逆元为:
    b m − 2 b^{m-2} bm2
  • 调用快速幂即可求出逆元,在求组合数时会派上用场
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Siriu_Sky

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值