If you're seeing this message, it means we're having trouble loading external resources on our website.

如果你被网页过滤器挡住,请确保域名*.kastatic.org*.kasandbox.org 没有被阻止.

主要内容

什么是模运算?

模块化数学的介绍

当我们将两个整数相处的时候,我们会有一个如下的等式:
AB=Q 余数 R
A 是被除数
B 是除数
Q 是商数
R 是余数
有时,我们将 A 处以 B时只在乎 余数
为这些情况,有一个运算符叫模块运算符(简称 mod)。
用以上的 A, B, QR 我们知道: A mod B=R
我们会说 A B 为模等于 R。在这里 B 被成为
举例:
135=2 余数 313 mod 5=3

用钟来图示模块化数学

注意我们将数字加 1 并除以 3 会怎么样。
03=0 余数 013=0 余数 123=0 余数 233=1 余数 043=1 余数 153=1 余数 263=2 余数 0
余数一开始是 0 ,并每次加 1 ,直到数字比被除数少 1. 之后,这个顺序重复
注意到这一点以后,我们可以用圆形图示模块元运算符。
我们在一个圆形的顶端写上 0,接着顺时针地写整数 1,2,... 直到比模少 1.
例如,一个 12 被换成 0 的钟就是以 12 为模的圆形。
为了得出 A mod B 的结果,我们可以按照以下步骤操作:
  1. B 大小做出这个钟
  2. 从 0 开始沿着钟移动 A
  3. 所到之处就是答案。
(如果数字是正数我们就顺时针走,如果是 负数 我们就 反时针走。)

示例

8 mod 4=?

以 4 为模,我们做一个包括数字 0, 1, 2, 3 的钟。
我们从 0 开始按照顺时针的顺序经过 8 个数字 1, 2, 3, 0, 1, 2, 3, 0。
我们结束于 0 因此 8 mod 4=0.

7 mod 2=?

以 2 为模我们就做一个有数字 0, 1 的钟。
我们从 0 开始按照顺时针的顺序经过 7 个数字 1, 0, 1, 0, 1, 0, 1。
我们结束于 1 ,所以 7 mod 2=1

5 mod 3=?

以 3 为模,我们做一个包括数字 0, 1, 2 的钟。
我们从 0 开始按照反时针(5 是负数)的顺序经过 5 个数字 2, 1, 0, 2, 1。
我们结束于 1 ,所以 5 mod 3=1

结论

如果我们有 A mod B 并将 A 增加 B 的倍数, 我们会达到同一个位置,也就是说
A mod B=(A+KB) mod B 为 任何整数 K.
举例:
3 mod 10=313 mod 10=323 mod 10=333 mod 10=3

致读者

编程语言和计算器中的模块

很多编程语言,以及计算器,有一个模块运算符,通常表达为 % 符号。如果你计算一个负数的结果,有些语言会返回一个负数的结果。
例如:
-5 % 3 = -2.

同余

你有可能会看到如下的公式:
AB (mod C)
意思是 A 全等 BC 为模。这类似于我们在这里用的公式,但是不完全一样。
在下一篇文章我们将解释这是什么意思以及与以上的公式有什么关系。

想加入讨论吗?

尚无帖子。
你会英语吗?单击此处查看更多可汗学院英文版的讨论.