结果完全正确。模算术定义了以下内容(我将使用“全等”,因为我不能用三行输入等号)
a congruent b mod c iff a-b 是 c 的倍数,即 x * c = (a-b) 对于某个整数 x。
例如
0 congruent 0 mod 5 (0 * 5 = 0-0)
1 congruent 1 mod 5 (0 * 5 = 1-1)
2 congruent 2 mod 5 (0 * 5 = 2-2)
3 congruent 3 mod 5 (0 * 5 = 3-3)
4 congruent 4 mod 5 (0 * 5 = 4-4)
5 congruent 0 mod 5 (1 * 5 = 5-0)
6 congruent 1 mod 5 (1 * 5 = 6-1)
...
同样可以扩展到负整数:
-1 congruent 4 mod 5 (-1 * 5 = -1-4)
-2 congruent 3 mod 5 (-1 * 5 = -2-3)
-3 congruent 2 mod 5 (-1 * 5 = -3-2)
-4 congruent 1 mod 5 (-1 * 5 = -4-1)
-5 congruent 5 mod 5 (-1 * 5 = -5-0)
-6 congruent 4 mod 5 (-2 * 5 = -6-4)
-7 congruent 3 mod 5 (-2 * 5 = -7-3)
...
如您所见,很多整数都是全等的 3 mod 5:
..., -12, -7, -2, 3, 8, 13, ...
在数学中,这些数的集合称为由等价关系“同余”引出的等价类。我们对余数的理解和“mod”函数的定义都是基于这个等价类。 “余数”或 mod 计算的结果是等价类的代表元素。通过声明,我们选择了最小的 non-negative 元素(所以 -2 不是一个有效的候选)。
因此,当您阅读 -2 mod 5 = x 时,这将转换为“找到最小的非负 x,以便存在一个具有 y * 5 = -2 - x 的整数 y”,这与同余的定义一致。解决方案是 y=1 和 x = 3,您只需尝试 y 的其他值即可。