【取模和求余原理】
定义:a = bq + r 且 0 <= |r| < |b|。
题目:给定a和b,要求mod(a,b)和rem(a,b);
分析:对于满足a = bq + r 且 0 <= |r| < |b|条件的数据,如果a不能被b整除,有两对(q,r),其中一对中r为正数(正余数),另一对中r为负数(负余数)。
结果:取模的定义有很多种,不同语言的取模定义可能不一样,最常见的是:
取模:q更趋近无穷小(负无穷)时的r,即mod(a,b);
求余:q更趋近0时的r,即rem(a,b);
(取余,遵循尽可能让商向0靠近的原则;取模,遵循尽可能让商向负无穷靠近的原则;)
【举例】
例子1:mod(7,3)=1,rem(7,3)=1
候选组1:(q1,r1)=(2,1); 7=2*3+1
候选组2:(q2,r2)=(3,-2); 7=3*3+(-2)
取模:因为q1比q2更加趋近于负无穷,所以取(q1,r1)=(2,1),mod(7,3)=1;
求余:因为q1比q2更加趋近于0,所以取(q1,r1)=(2&