关于c++ mod的性质的一些总结

所谓mod,也就是取余,在c++中用’%‘表示,是非常常见的一种对数据的处理方式,通俗的说,a mod b 等于a除以b的余数(当然了,b不能等于0),a、b都得为整数。下面,介绍一些它的性质。

    • 模同余

所谓模同余,就是两个数对同一个数取模,如果结果相同,则称他们模同余。

a和b对c模同余的条件:
(a-b)%c==0;
    • 加法取模的伪分配律

简单来说,就是:

(x+y)%z==(x%z+y%z)%z
 证明:
x可看成a*z+b,y可看成c*z+d
那么,(x+y)%z => (a*z+b+c*z+d)%z => ((a+c)*z+(b+d))%z 
根据取模的定义,(a+c)%z 可以消掉,而b=x%z,d=y%z,故((a+c)*z+(b+d))%z = (x%z+y%z)%z
故(x+y)%z==(x%z+y%z)%z
    • 乘法取模的伪分配律

(x*y)%z==(x%z*y%z)%z
证明方法同上

你可能感兴趣的:(c+++++++算法题,c++,算法)