模运算中的逆元

1 取模

在c++中, 我们可以把 ( a + b ) % m (a + b) \% m (a+b)%m化简为 ( a % m + b % m ) % m (a \% m + b \% m) \% m (a%m+b%m)%m, 同理

( a × b ) % m = ( a % m × b % m ) % m (a \times b) \% m = (a \% m \times b \% m) \% m (a×b)%m=(a%m×b%m)%m

( a − b ) % m = ( a + ( − b ) ) % m = ( a % m + ( − b ) % m ) % m = ( a % m − b % m ) % m (a - b) \% m = (a + (-b)) \% m = (a \% m + (-b) \% m) \% m = (a \% m -b \% m) \% m (ab)%m=(a+(b))%m=(a%m+(b)%m)%m=(a%mb%m)%m

但是 ( a ÷ b ) % m (a \div b) \% m (a÷b)%m可以化简为 ( a % m ÷ b % m ) % m (a \% m \div b \% m) \% m (a%m÷b%m)%m吗, 显然不行, 因为c++中的除号是整除

这就需要用到逆元, 但是在介绍之前需要先铺垫一些知识点, 想要直接跳到结尾点击此处

本文中小括号表示最大公因数: ( a , b , c , …   ) (a, b, c,\dots) (a,b,c,)代表 g c d ( a , b , c , …   ) gcd(a, b, c, \dots) gcd(a,b,c,), 百分号表示取模

2 整除

定义: 有两个正整数 a , b a, b a,b ( a ≠ 0 ) (a \ne 0) (a=0), 如果有一个正整数 k k k, 使 b = k a b = ka b=ka, 那么说明 a a a能整除 b b b, b b b能被 a a a整除, 用 a ∣ b a \mid b ab来表示

2.1 整除性质

2.1.1 性质1: 正负对整除无影响

a ∣ b ⇔ a ∣ − b ⇔ − a ∣ b ⇔ ∣ a ∣ ∣ ∣ b ∣ a \mid b \Leftrightarrow a \mid -b \Leftrightarrow -a \mid b \Leftrightarrow \vert a \vert \mid \vert b \vert abababab

证明: ∵ a ∣ b ∴ \because a \mid b \therefore ab由定义得有一整数 c c c使 b = a c b = ac b=ac, 可以得到 − b = a ( − c ) , b = − a ( − c ) , ∣ b ∣ = ∣ a c ∣ = ∣ a ∣ ∣ c ∣ -b = a(-c), b = -a(-c), |b| = |ac| = |a||c| b=a(c),b=a(c),b=ac=a∣∣c

2.1.2 性质2: 传递

a ∣ b , b ∣ c ⇒ a ∣ c a \mid b, b \mid c \Rightarrow a \mid c ab,bcac

证明: ∵ a ∣ b ∴ \because a \mid b \therefore ab由定义得有一整数 d d d使 b = a d b = ad b=ad, ∵ b ∣ c ∴ \because b \mid c \therefore bc由定义得有一整数 e e e使 c = b e c = be c=be, ∴ c = a d e ∴ \therefore c = ade \therefore c=ade由定义得 a ∣ c a \mid c ac

2.1.3 性质3

有两个整数 x , y x, y x,y
a ∣ b , a ∣ c ⇒ a ∣ ( b x + c y ) a \mid b, a \mid c\Rightarrow a \mid (bx + cy) ab,aca(bx

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值