同余

本博客主要介绍同余这一内容。当然,本博客仅代表作者自身观点如有错误,请您指出。

  同余,是数论中一个特别重要的一部分,而且编程中需要用到数论的大部分都是同余相关的问题。所以本篇博客就来介绍一下关于同余的一些东西。

模运算

  同余有一个十分基础的运算,叫做取模。而在计算机中,我们所说的取模一般都是进行下述运算: x   m o d   y = { x − ⌊ x y ⌋ × k       ( x ≥ 0 ) − [ ( − x )   m o d   y ]     ( x < 0 ) x\ mod\ y = \begin{cases}x - \lfloor \frac{x}{y}\rfloor\times k\ \ \ \ \ (x \geq 0)\\ -[(-x)\ mod\ y]\ \ \ (x < 0)\end{cases} x mod y={xyx×k     (x0)[(x) mod y]   (x<0)实际上,这一运算是同余问题的基础,有许多同余性质都能由模运算计算式推出。

同余

  若整数 a a a与整数 b b b除以正整数 m m m的余数相等,则称 a , b a,b ab 关于模 m m m 同余,记作 a ≡ b ( m o d   m ) a\equiv b(mod\ m) ab(mod m)

同余类与剩余系

  显然, ∀ a ∈ [ 0 , m − 1 ] \forall a\in [0,m - 1] a[0,m1],集合 { a + k m }   ( k ∈ Z ) \{a + km\}\ (k\in Z) {a+km} (kZ) 中的所有数模 m m m 同余,余数均为 a a a 。这种集合被称为一个模 m m m同余类,简记为 a ‾ \overline{a} a

  由同余类的定义可知,模 m m m 的同余类共有 m m m 个,分别为 0 ‾ , 1 ‾ , 2 ‾ ⋯ m − 1 ‾ \overline{0} ,\overline{1} , \overline{2}\cdots \overline{m - 1} 0,1,2m1。它们构成 m m m完全剩余系

  特别地,我们将 1~ m m m 中与 m m m 互质的 φ ( m ) \varphi(m) φ(m)个数的集合称为 m m m 的简化剩余系。例如模10的简化剩余系为 { 1 ‾ , 3 ‾ , 7 ‾ , 9 ‾ } \{\overline{1} ,\overline{3},\overline{7} , \overline{9}\} {1,3,7,9}

  由简化剩余系的定义与互质的定义可以想到,对在 m m m 的简化剩余系中的任意两数进行模 m m m 乘法,所得的结果一定属于该简化剩余系。因为若 a , b   ( 1 ≤ a , b ≤ m ) a, b\ (1 \leq a,b\leq m) a,b (1a,bm) m m m 互质,则 a × b a\times b a×b 也没有与 m m m 相同的质因子,也就是说 a × b a\times b a×b m m m 互质。再由模运算的计算式可以推出 a × b   m o d   m a\times b\ mod \ m a×b mod m也关于 m m m 互质,即 a × b   m o d   m a\times b\ mod\ m a×b mod m 也属于 m m m 的简化剩余系。这种现象称为简化剩余系关于模 m m m 乘法封闭。

欧拉定理

若正整数 a , n a,n an 互质,则 a φ ( n ) ≡ 1   ( m o d   n ) a^{\varphi(n)}\equiv 1\ (mod\ n) aφ(n)1 (mod n),其中 φ ( n ) \varphi(n) φ(n) 是欧拉函数。

证明

  设 n n n 的简化剩余系为 { a 1 ‾ , a 2 ‾ , a 3 ‾ ⋯ , a φ ( n ) ‾ } \{\overline{a_1},\overline{a_2},\overline{a_3}\cdots,\overline{a_{\varphi(n)}}\} {a1a2a3aφ(n)},那么,任取 a i , a j a_i , a_j ai,aj,若 a × a i ≡ a × a j   ( m o d   n ) a\times a_i\equiv a\times a_j\ (mod\ n) a×aia×aj (mod n),则 a × ( a i − a j ) ≡ 0 ( m o d   n ) a\times(a_i - a_j)\equiv 0 (mod\ n) a×(aiaj)0(mod n),已知 a a a n n n 互质,所以 a i − a j ≡ 0 ( m o d   n ) a_i - a_j \equiv 0(mod\ n) aiaj0(mod n),也就是说 a i ≡ a j ( m o d   n ) a_i\equiv a_j(mod\ n) aiaj(mod n),又因为 a i , a j a_i,a_j aiaj 取自 n n n 的简化剩余系中,所以当且仅当 a i = a j a_i = a_j ai=aj 时, a i ≡ a j ( m o d   n ) a_i\equiv a_j(mod\ n) aiaj(mod n)。故当 a i ≠ a j a_i\neq a_j ai=aj时, a a i aa_i aai a a j aa_j aaj 表示不同的同余类。

  又因为简化剩余系关于模 n n n 乘法封闭,所以 a a i ‾ \overline{aa_i} aai一定也在简化剩余系中,以此类推,可以得出 { a 1 ‾ , a 2 ‾ ⋯ , a φ ( n ) ‾ } \{\overline{a_1},\overline{a_2} \cdots,\overline{a_{\varphi(n)}}\} {a1a2aφ(n)} { a a 1 ‾ , a a 2 ‾ ⋯ , a a φ ( n ) ‾ } \{\overline{aa_1},\overline{aa_2} \cdots,\overline{aa_{\varphi(n)}}\} {aa1aa2aaφ(n)} 都是模 n n n 的简化剩余系。综上所述:
a φ ( n ) a 1 a 2 ⋯ a φ ( n ) ≡ ( a a 1 ) ( a a 2 ) ⋯ ( a a φ ( n ) ) ≡ a 1 a 2 ⋯ a φ ( n ) ( m o d   n ) a^{\varphi(n)}a_1a_2\cdots a_{\varphi(n)}\equiv (aa_1)(aa_2)\cdots (aa_{\varphi(n)})\equiv a_1a_2\cdots a_{\varphi(n)}(mod\ n) aφ(n)a1a2aφ(n)(aa1)(aa2)(aaφ(n))a1a2aφ(n)(mod n)
  所以 a φ ( n ) ≡ 1 ( m o d   n ) a^{\varphi(n)}\equiv 1(mod\ n) aφ(n)1(mod n)
证毕。

费马小定理

p p p 是质数,则对于任意整数 a a a ,有 a p ≡ a ( m o d   p ) a^p \equiv a(mod\ p) apa(mod p)

  事实上,当欧拉定理中的 n n n 为质数时,代入可以得到 a n − 1 ≡ 1 ( m o d   n ) a^{n - 1} \equiv 1(mod\ n) an11(mod n) ,即 a n ≡ a ( m o d   n ) a^n \equiv a(mod\ n) ana(mod n)。也就是费马小定理。

同余方程(组)

  由于本人知识面狭隘这里说的仅限线性同余方程(组)。
  给定整数 a , b , m a,b,m abm,求一个整数 x x x 满足 a × x ≡ b ( m o d   m ) a\times x\equiv b(mod\ m) a×xb(mod m),或者给出无解。因为未知数的指数为 1,所以我们称这种方程为线性同余方程。
  具体求解过程见扩展欧几里得算法
  线性同余方程组的定义与等式方程组定义差不多,为求多个线性同余方程的公共解。
  具体求解过程见扩展中国剩余定理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值