【刷题】数学知识——模运算规则

四则运算

(a + b) % p = (a % p + b % p) % p

(a - b) % p = (a % p - b % p) % p

(a * b) % p = (a % p * b % p) % p

a ^ b % p = ((a % p)^b) % p

结合律

((a+b) % p + c) % p = (a + (b+c) % p) % p

((ab) % p * c)% p = (a * (bc) % p) % p

交换律

(a + b) % p = (b+a) % p

(a * b) % p = (b * a) % p

分配律

((a + b)% p * c) % p = ((a * c) % p + (b * c) % p) % p

重要定理

若a≡b (% p),则对于任意的c,都有(a + c) ≡ (b + c) (%p);

若a≡b (% p),则对于任意的c,都有(a * c) ≡ (b * c) (%p);

若a≡b (% p),c≡d (% p),

则 (a + c) ≡ (b + d) (%p),

(a - c) ≡ (b - d) (%p),

(a * c) ≡ (b * d) (%p),

(a / c) ≡ (b / d) (%p);

消除律

若ab≡ac (% p),则b≡c (% p),仅当a和p互质时成立

因为上式等价于a(b-c) ≡ 0 (% p)
即a(b-c)恰好被p整除,因为a和p互质,所以a中不包含p的因数,因此只能(b-c)恰好被p整除。
所以有(b-c) ≡ 0 (% p),b≡c (% p)。

取模和求余

对于整型数a,b来说,取模运算或者求余运算的方法都是:

1.求 整数商: c = a / b c = a/b c=a/b

2.计算模或者余数: r = a − c ∗ b r = a - c*b r=acb

取余:c / java
计算c的值时,向0 方向舍入(fix())
c = 9 / − 5 = − 9 / 5 = − 1 c = 9 / -5 = -9 / 5 = -1 c=9/5=9/5=1
则: 9 % − 5 = 9 − ( − 1 ) ∗ ( − 5 ) = 4 9 \% -5 = 9 - (-1)*(-5) = 4 9%5=9(1)(5)=4;
− 9 % 5 = − 9 − ( − 1 ) ∗ 5 = − 4 -9 \% 5 = -9-(-1)*5 = -4 9%5=9(1)5=4;

取模:python
计算c的值时,向负无穷大方向舍入(floor())
c = 9 / − 5 = − 9 / 5 = − 2 c = 9 / -5 = -9 / 5 = -2 c=9/5=9/5=2
9 % − 5 = − 1 9 \% -5 = -1 9%5=1;
− 9 % 5 = 1 -9 \% 5 = 1 9%5=1;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值