这个定理告诉我们,模 m 的同余式在加法、减法和乘法运算下表现良好。换句话说,你可以在模系统中执行这些算术运算,而不会影响同余关系。

让我们分解一下每一部分的意思以及它为什么重要:

  1. a′+b′≡a+b(mod m): 如果 a' 同余于 a (mod m),且 b' 同余于 b (mod m),那么 a'b' 的和同余于 ab 的和 (mod m)。

    例子:m = 5。如果 a = 7 且 a' = 12(都同余于 2 mod 5),且 b = 3 且 b' = 8(都同余于 3 mod 5),那么 a + b = 10 且 a' + b' = 20。10 和 20 都同余于 0 (mod 5)。

  2. a′−b′≡a−b(mod m): 类似于加法,如果 a' 同余于 a (mod m),且 b' 同余于 b (mod m),那么 a'b' 的差同余于 ab 的差 (mod m)。

    例子:m = 5。使用和上面相同的值,a - b = 4 且 a' - b' = 4。两者都同余于 4 (mod 5)。注意,即使减法得到一个负数,同余关系仍然成立(你可能需要加上 m 的倍数来得到一个正的代表)。

  3. a′b′≡ab(mod m): 这也许是最重要的部分。如果 a' 同余于 a (mod m),且 b' 同余于 b (mod m),那么 a'b' 的积同余于 ab 的积 (mod m)。

    例子:m = 5。再次使用相同的值,a * b = 21 且 a' * b' = 96。两者都同余于 1 (mod 5)。

为什么这个定理重要?

这个定理是模算术的基础。它允许我们像处理普通等式一样进行同余运算(有一些注意事项)。这在以下领域至关重要:

本质上,它通过允许我们替换同余数而不改变最终结果(模 m)来简化同余运算。

🧠定理演示

https://gist.github.com/viadean/fd1b426e9bf652ec6dc3e1aece7613dc

解释和主要改进:

  1. 清晰的函数定义: 代码被组织成函数,分别对应定理的每个部分(加法、减法、乘法)。这使得代码更具可读性和可重用性。
  2. 显式模运算符: % 运算符(模)被一致地使用,以确保所有计算都在模 m 系统中完成。这对于正确性至关重要。
  3. 条件检查: 代码现在显式地检查初始条件:a_prime % m == a % m and b_prime % m == b % m。如果此条件不满足,则函数会打印一条消息并返回 False,表明定理的前提不成立。这对于通过代码进行正确的“证明”非常重要。
  4. 信息丰富的输出: print 语句清楚地显示了计算和同余检查的结果,使得跟踪发生的事情变得容易。
  5. 返回值: 如果同余式成立,则函数返回 True,否则返回 False。这允许你在更复杂的逻辑中使用这些函数。
  6. 处理负数结果: 减法示例展示了模运算符如何在 Python 中处理负数,确保同余式仍然被正确检查。Python 中 3 % 7 的计算结果为 3,因此同余式被认为是成立的。