下面是模乘法的一些有趣的性质
(a x b) mod m = ((a mod m) x (b mod m)) mod m
(a x b x c) mod m = ((a mod m) x (b mod m) x (c mod m)) mod m
The same property holds for more than three numbers.
上面的公式是下面公式的扩展版本:
示例 1:
求 15 x 17 x 19 除以 7 的余数。
解决方案:
将 15 除以 7 我们得到 1 作为余数。
将 17 除以 7 我们得到 3 作为余数。
将 19 除以 7 我们得到 5 作为余数。
表达式 (15 x 17 x 19)/7 的余数将等于 (1 x 3 x 5)/7。
组合余数将等于 15/7 的余数,即 1。
示例 2:
求 1421 x 1423 x 1425 除以 12 的余数。
解决方案:
将 1421 除以 12,我们得到 5 作为余数。
将 1423 除以 12,我们得到 7 作为余数。
将 1425 除以 12,我们得到 9 作为余数。
雷姆 [(1421 x 1423 x 1425)/12] = 雷姆 [(5 x 7 x 9)/12]
雷姆 [(35 x 9)/12] = 雷姆 [(11 x 9)/12]
雷姆 [99/12] = 3。
它如何有用?
如果我们需要求两个大数相乘的余数,我们可以避免做大数的乘法,这对于大数相乘会导致溢出的编程尤其有用。
证明:如果我们证明两个数,那么我们可以很容易地推广它。让我们看看两个数字的证明。
Let a % m = r1
and b % m = r2
Then a and b can be written as (using quotient
theorem). Here q1 is quotient when we divide
a by m and r1 is remainder. Similar meanings
are there for q2 and r2
a = m x q1 + r1
b = m x q2 + r2
LHS = (a x b) % m
= ((m x q1 + r1 ) x (m x q2 + r2) ) % m
= (m x m x q1 x q2 +
m x q1 x r2 +
m x q2 x r1 + r1 x r2 ) % m
= (m x (m x q1 x q2 + q1 x r2 +
q2 x r1) +
r1 x r2 ) % m
We can eliminate the multiples of m when
we take the mod m.
LHS = (r1 x r2) % m
RHS = (a % m x a % m) % m
= (r1 x r2) % m
Hence, LHS = RHS