宝塔服务器面板,一键全能部署及管理,送你10850元礼包,点我领取
mod运算,即求余运算,是在整数运算中求一个整数 x 除以另一个整数y的余数的运算,且不考虑运算的商。在计算机程序设计中都有MOD运算,其格式为: modnExp1,nExp2)
,即是两个数值表达式作除法运算后的余数。
模p运算编辑
给定一个正整数p,任意一个整数n,一定存在等式
n = kp + r 其中k、r是整数,且 0 ≤ r < p,称呼k为n除以p的商,r为n除以p的余数。
对于正整数p和整数a,b,定义如下运算:
取模运算:a mod p 表示a除以p的余数。
模p加法:a + b) mod p ,其结果是a+b算术和除以p的余数,也就是说,a+b) = kp +r,则 a+b) mod p = r。
模p减法:a-b) mod p ,其结果是a-b算术差除以p的余数。
模p乘法:a × b) mod p,其结果是 a × b算术乘法除以p的余数。
可以发现,模p运算和普通的四则运算有很多类似的规律,如:
结合律 | a+b) mod p + c)mod p = a + b+c) mod p) mod pa*b) mod p * c)mod p = a * b*c) mod p) mod p |
交换律 | a + b) mod p = b+a) mod pa × b) mod p = b × a) mod p |
分配律 | a +b)mod p × c) mod p = a × c) mod p + b × c) mod p) mod pa×b) mod c=a mod c * b mod c) mod ca+b) mod c=a mod c+ b mod c) mod ca-b) mod c=a mod c- b mod c) mod c |
模p相等
如果两个数a、b满足a mod p = b mod p,则称他们模p相等,记做
a ≡ b mod p)
可以证明,此时a、b满足 a = kp + b,其中k是某个整数。
对于模p相等和模p乘法来说,有一个和四则运算中迥然不同的规则。在四则运算中,如果c是一个非0整数,则
ac = bc 可以得出 a =b
但是在模p运算中,这种关系不存在,例如:
3 x 3) mod 9 = 0
6 x 3) mod 9 = 0
但是
3 mod 9 = 3
6 mod 9 =6
定理(消去律):如果gcdc,p) = 1 ,则 ac ≡ bc mod p 可以推出 a ≡ b mod p)
证明:
因为ac ≡ bc mod p)
所以ac = bc + kp,也就是ca-b) = kp
因为c和p没有除1以外的公因子,因此上式要成立必须满足下面两个条件中的一个
1) c能整除k
2) a = b
如果2不成立,则c|kp
因为c和p没有公因子,因此显然c|k,所以k = ck'
因此ca-b)=kp可以表示为ca-b) =ck'p
因此a-b = k'p,得出a ≡ b mod p)
如果a = b,则a ≡ b mod p 显然成立
得证
更多相关知识,请访问:PHP中文网!
以上就是在算法中mod是什么意思?的详细内容,更多请关注风君子博客其它相关文章!