逆元的知识

相关内容

整除

b可以被a整除,b是a的倍数,a是b的约数,就称为a整除b,记做a|b

a|b=b%a==0

整除的性质

1.符号不影响

-a|b=a|b

2.传递性

a|b,b|c,a|c

3.a|b,b|c,等价于任意的整数x,y,有a|(bx+cy)

4.m!=0,am|bm

5. 若(m,a)=1 , m|ab,则 m|b

6. 所有的 a_i | c (1≤i≤n) 成 立 的 充 分 必 要 条 件 是[a_1,a_2,…,a_n]|c 。也就是说一组数的公倍数必然是这组数最小公倍数的倍数。

同余

设 m≠0 ,若 m|a-b ,即 a-b=km ,k 为任意整数,则称 :a 同余于 b 模 m ,记作:
a≡b(mod m)
这个式子还称为 b 是 a 对模 m 的剩余。若 1≤b<m,则称 b 是 a 对模 m 的最小正剩余。

性质 1
若 a≡b(mod m),满足:
a≡a(mod m) 自反
b≡a(mod m) 对称
a≡b(mod m), b≡c(mod m)⇒ a≡c(mod m) 传递
a+c≡b+c(mod m) 同加
a×c≡b×c(mod m), a×c≡b×d(mod m)(c≡d(mod m)) 同乘

a的n次方≡b的n次方(modm) 同幂

逆元

取模的四则运算

a+b 取模 p:(a+b)%p

a-b 取模 p:(a-b+p)%p

a×b 取模 p:a*b%p

但除法就不能像上面一样了,可能会出现小数的情况,那怎么办呢?很简单,一个数除一个数,就相当于乘它的倒数,这就是逆元,在模运算系统中,inv(a)代表 a 分之一。

代码:

int niyuan(int a,int b,int mod){
    int res=1;
    while(b){
        if(b&1)res=res*a%mod;
        b>>=1;
        a=a*a%mod;
    }
    return res;
}


 

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值