今天我们来浅谈同余定理
什么是同余定理
前置知识
- 余数
大家应该都知道余数是什么吧(只要上过小学)
不知道的话(知道的可以跳过)
那我给你一个除法算式
a ÷ b = x ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ y a \div b = x \cdot\cdot\cdot\cdot\cdot\cdot y a÷b=x⋅⋅⋅⋅⋅⋅y
这个 y y y 就是余数 y ≥ 0 y \ge 0 y≥0
根据 a ÷ b = x ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ y a \div b = x \cdot\cdot\cdot\cdot\cdot\cdot y a÷b=x⋅⋅⋅⋅⋅⋅y 可以得到 x × b + y = a x \times b+y = a x×b+y=a
- 模(取余)运算
我们都知道代码中有模运算,就是
%
,数学中叫做 m o d \bmod mod它代表一个数除以另一个数的余数
代码中写作
a%b
数学中写作 a m o d b = c a \bmod b = c amodb=c 或 a ≡ c ( m o d b ) a \equiv c ( \bmod b) a≡c(modb)
其实前置知识中有个错误,你发现了吗
没发现的话也没有关系,因为你还不知道同余定理,如果你知道的话,就不会看这篇文章了
其实 a ≡ c ( m o d b ) a \equiv c ( \bmod b) a≡c(modb) 表示的是 a a a 和 c c c 取余 b b b 是相同的,即 a % b = c % b a \% b = c\% b a%b=c%b 这也就是同余定理
总结一下,同余定理就是两个不同的数除以同一个数的余数相等而诞生的一坨一坨的东西的总称
浅谈同余定理
接下来我会把同余定理的公式转化成数学式子以及编程的代码(但是会越来越少越来越简洁),不理解的可以留言
-
a ≡ a ( m o d m ) a \equiv a (\bmod m) a≡a(modm) ,即 a % m = a % m ( a m o d m = a m o d m ) a\%m=a\%m(a \bmod m = a\bmod m) a%m=a%m(amodm=amodm)
-
如果 a ≡ b ( m o d m ) a \equiv b (\bmod m) a≡b(modm) 那么 b ≡ a ( m o d m ) b \equiv a (\bmod m) b≡a(modm) ,即如果 a % m = b % m ( a m o d m = b m o d m ) a\%m = b\%m (a \bmod m = b \bmod m) a%m=b%m(amodm=bmodm) ,那么 b % m = a % m ( b m o d m = a m o d m ) b\%m = a\%m (b \bmod m = a \bmod m) b%m=a%m(bmodm=amodm)
-
如果 a ≡ b ( m o d m ) a \equiv b (\bmod m) a≡b(modm) 且 b ≡ c ( m o d m ) b \equiv c (\bmod m) b≡c(modm) ,那 a ≡ c ( m o d m ) a \equiv c (\bmod m) a≡c(modm) ,即如果 a % m = b % m & & b % m = c % m a\%m = b\%m \&\& b\%m = c\%m a%m=b%m&&b%m=c%m ,那么 a % m = b % m = c % m a\%m = b\%m = c\%m a%m=b%m=c%m
这一部分可能不太能懂,我尽力了
如果 a ≡ b ( m o d m ) a \equiv b (\bmod m) a≡b(modm) 且 c ≡ d ( m o d m ) c \equiv d (\bmod m) c≡d(modm),那么 a + c ≡ b + d ( m o d m ) a+c \equiv b+d (\bmod m) a+c≡b+d(modm) ,即 a % m = b % m & & c % m = d % m a\%m = b\%m \&\& c\%m = d\%m a%m=b%m&&c%m=d%m ,那么 ( a + b ) % m = ( c + d ) % m (a+b)\%m = (c+d)\%m (a+b)%m=(c+d)%m
∗ {}^* ∗ 此部分仅供参考,其余请见后记+注释部分
a ≡ b ( m o d m ) a \equiv b(\bmod m) a≡b(modm) 把它简单
或抽象化成 a ≡ a ( m o d m ) a \equiv a(\bmod m) a≡a(modm)c ≡ d ( m o d m ) c \equiv d(\bmod m) c≡d(modm) 把它简单化成 c ≡ c ( m o d m ) c \equiv c(\bmod m) c≡c(modm)
那么 ( a + b ) % m = ( c + d ) % m (a+b)\%m = (c+d)\%m (a+b)%m=(c+d)%m 就等价于 ( a + c ) % m = ( a + c ) % m (a+c)\%m = (a+c)\%m (a+c)%m=(a+c)%m
如果 a ≡ b ( m o d m ) a \equiv b (\bmod m) a≡b(modm),那么 a − c ≡ b − c ( m o d m ) a-c \equiv b-c (\bmod m) a−c≡b−c(modm) ,即 a % m = b % m a\%m = b\%m a%m=b%m ,那么 ( a − c ) % m = ( b − c ) % m (a-c)\%m = (b-c)\%m (a−c)%m=(b−c)%m
如果 a ≡ b ( m o d m ) a \equiv b (\bmod m) a≡b(modm)且 c ≡ d ( m o d m ) c \equiv d (\bmod m) c≡d(modm),那么 a c ≡ b d ( m o d m ) ac \equiv bd (\bmod m) ac≡bd(modm) ,即 a % m = b % m & & c % m = d % m a\%m = b\%m \&\& c\%m = d\%m a%m=b%m&&c%m=d%m ,那么 a b % m = c d % m ab\%m = cd\%m ab%m=cd%m
后记+注释
- 参考文献
来自文心一言大模型
同余定理的数学性质
同余定理是数论中的重要概念,它描述了两个整数在除以某个正整数后余数相等的关系。其数学性质主要包括以下几个方面:
-
反身性:对于任意整数 a a a和正整数 m m m,都有 a ≡ a ( m o d m ) a \equiv a (\bmod m) a≡a(modm)。即任何数与其自身对模 m m m同余。
-
对称性:如果 a ≡ b ( m o d m ) a \equiv b (\bmod m) a≡b(modm),那么 b b b也必然与 a a a对模 m m m同余,即 b ≡ a ( m o d m ) b \equiv a (\bmod m) b≡a(modm)。这表示同余关系是对称的。
-
传递性:如果 a ≡ b ( m o d m ) a \equiv b (\bmod m) a≡b(modm)且 b ≡ c ( m o d m ) b \equiv c (\bmod m) b≡c(modm),那么可以推出 a ≡ c ( m o d m ) a \equiv c (\bmod m) a≡c(modm)。即如果两个数分别与第三个数同余,那么这两个数也相互同余。
-
运算性质:
-
加法:如果 a ≡ b ( m o d m ) a \equiv b (\bmod m) a≡b(modm)且 c ≡ d ( m o d m ) c \equiv d (\bmod m) c≡d(modm),那么 a + c ≡ b + d ( m o d m ) a+c \equiv b+d (\bmod m) a+c≡b+d(modm)。
-
减法:如果 a ≡ b ( m o d m ) a \equiv b (\bmod m) a≡b(modm),那么 a − c ≡ b − c ( m o d m ) a-c \equiv b-c (\bmod m) a−c≡b−c(modm)。
-
乘法:如果 a ≡ b ( m o d m ) a \equiv b (\bmod m) a≡b(modm)且 c ≡ d ( m o d m ) c \equiv d (\bmod m) c≡d(modm),那么 a c ≡ b d ( m o d m ) ac \equiv bd (\bmod m) ac≡bd(modm)。但需要注意的是,除法运算在同余中并不总是成立的。
-
幂运算:如果 a ≡ b ( m o d m ) a \equiv b (\bmod m) a≡b(modm),那么对于任意正整数 n n n,都有 a n ≡ b n ( m o d m ) an \equiv bn (\bmod m) an≡bn(modm)。
-
-
模的倍数性质:如果 a ≡ b ( m o d m ) a \equiv b (\bmod m) a≡b(modm),那么对于任意整数 k k k,都有 a + k m ≡ b ( m o d m ) a+km \equiv b (\bmod m) a+km≡b(modm)和 a − k m ≡ b ( m o d m ) a-km \equiv b (\bmod m) a−km≡b(modm)。
- ∗ * ∗ 此部分仅供参考,只是我的一种思路。
因为 a ÷ m = a x ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ y & & b ÷ m = b x ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ y a\div m = a_x \cdot \cdot \cdot \cdot \cdot \cdot y \&\& b \div m = b_x \cdot \cdot \cdot \cdot \cdot \cdot y a÷m=ax⋅⋅⋅⋅⋅⋅y&&b÷m=bx⋅⋅⋅⋅⋅⋅y
所以本人,注意,只是本人认为在研究这个问题的时候认为把 b b b 替换成 a a a 没有太大的关系
但是大家不要被我误导,这应该不是一种正确的思路
希望这篇文章能给你带来帮助,点个赞再走吧
彩蛋:这篇文章耗时两晚,不下 3 小时,包括彩蛋共计 2787 个字符 \color{FFFFFF}彩蛋:这篇文章耗时两晚,不下3小时,包括彩蛋共计2787个字符 彩蛋:这篇文章耗时两晚,不下3小时,包括彩蛋共计2787个字符