简单理解-同余定理

本文章仅用于笔记。部分知识点来源于网络,授权请联系作者([email protected])。

 直接抛出自己的理解:

    2个不同的整数a、b,被一个整数m相除时,得到相同的余数,那么我就可以称a、b同余。

    因为a、b同余所以当他们相减时,余数就抵消掉了,剩下的那部分就是能被m整除的。

可以这么理解:

   a=m*q1+r1,b=m*q2+r

   a-b = m(q1-q2)

   在a-b = m(q1-q2) 即 m | (a-b) (a-b能被m整除) 成立时,就能说明a、b对于m同余

表示:

   因为a-b = m(q1-q2)

   所以a、b同余可以表示为

   a≡b(mod m)

10个同余定理的性质:

1.反身性:a≡a (mod m);

2.对称性:若a≡b(mod m),则b≡a (mod m);

3.传递性:若a≡b(mod m),b≡c(mod m),则a≡c(mod m);

4.同余式相加:若a≡b(mod m),c≡d(mod m),则a  c≡b  d(mod m);

5.同余式相乘:若a≡b(mod m),c≡d(mod m),则ac≡bd(mod m)。

证明:

∵a≡b(mod m)∴m|(a-b) 同理m|(b-c),

∴m|[(a-b)+(b-c)]∴m|(a-c).

故a≡c(mod m).

6.线性运算:如果a ≡ b (mod m),c ≡ d (mod m),那么

(1)a ± c ≡ b ± d (mod m);

(2)a * c ≡ b * d (mod m)。

证明:

(1)∵a≡b(mod m),

∴m|(a-b)

同理 m|(c-d)

∴m|[(a-b)±(c-d)]

∴m|[(a±c)-(b±d)]

∴a ± c ≡ b ± d (mod m)

(2)∵ac-bd=ac-bc+bc-bd=c(a-b)+b(c-d)

又 m|(a-b) , m|(c-d)

∴m|(ac-bd)

∴a * c ≡ b * d (mod m)

7.除法:若  ,则  ,其中gcd(c,m)表示c和m的最大公约数

特殊地,  则  ;

8.幂运算:如果  ,那么  ;

9.若  ,n=m,则  ;

10.若  ,(i=1,2...n) 则  ,其中  表示m1,m2,...mn的最小公倍数

应用例如:

方法一:

5^101 mod 3

可以通过同余的性质换算成

因为 5 mod 3 = 2

所以 2 与 5 是同余,表示成 5^101 mod 3  ≡ 2^101 mod 3

又因为 101 mod 3 = 2

所以 101 与 3 是同余,表示成 2^101 mod 3  ≡ 2^2 mod 3

(到这里可能大家都不理解,简单解释就是在底数相同时,指数变化 后在 去 mod 3,其实是个循环)

5^1 mod 3 = 2

5^2 mod 3 = 1

5^3 mod 3 = 2

5^4 mod 3 = 1

…………

所以在底数相同时可以对指数进行同余

所以上面这个问题 可以表示成 5^101 mod 3 ≡  2^2 mod 3 = 1

方法二:

5^101 mod 3

因为 5 mod 3 = 2

所以 2 与 5 是同余

因为 5 与 5 是同余

通过同余式相乘( 若a≡b(mod m),c≡d(mod m),则ac≡bd(mod m) )

2 ≡ 5 (mod 3),5 ≡ 5 (mod 3)

可以表示成

2 * 5 mod 3 ≡ 5 * 5 mod 3              = 1

1 * 5 mod 3 ≡ 2 * 5 * 5 mod 3        = 2

2 * 5 mod 3 ≡ 1 * 5 * 5 mod 3        = 1

…………

依次类推所以可以用程序循环表示:

int a = 5, pow = 101, m = 3, result = 1;

for(int i=1; i<=pow; i++){
    result *= a;
    result %= m;
}

所以这也是通过同余换算得到的。

本文章仅用于笔记。部分知识点来源于网络,授权请联系作者([email protected])。

求关注一波,谢谢!!!

猜你喜欢

转载自blog.csdn.net/qq_40833874/article/details/84696628