【数学】简化剩余系、欧拉函数、欧拉定理与扩展欧拉定理

简化剩余系

与完全剩余系略有区别。
我们定义数组 a i ( 1 ≤ i ≤ n ) a_i(1\le i\le n) ai(1in) 为模 m m m 的简化剩余系,当且仅当 ∀ 1 ≤ i , j ≤ n \forall 1\le i,j\le n ∀1i,jn,有 a i ≢ a j ( m o d m ) a_i\not\equiv a_j\pmod m aiaj(modm) ∀ 1 ≤ i ≤ n \forall 1\le i\le n ∀1in,有 gcd ⁡ ( m , a i ) = 1 \gcd(m,a_i)=1 gcd(m,ai)=1

  1. a i ( 1 ≤ i ≤ n ) a_i(1\le i\le n) ai(1in) 为模 m m m 的简化剩余系, gcd ⁡ ( b , m ) = 1 \gcd(b,m)=1 gcd(b,m)=1,则 b ⋅ a i ( 1 ≤ i ≤ n ) b\cdot a_i(1\le i\le n) bai(1in) 也为模 m m m 的简化剩余系。

简化剩余系的性质都在欧拉函数上了。。。

欧拉函数

定义欧拉函数 φ ( n ) \varphi(n) φ(n) 为小于等于 n n n 且与 n n n 互质的数的个数,即模 n n n 的简化剩余系的大小。

性质

  1. φ ( n ) = n ∏ p ∈ prime p ∣ n ( 1 − 1 p ) \varphi(n)=n\prod\limits_{\begin{subarray}{l}p\in\text{prime}\\p|n\end{subarray}}(1-\frac 1 p) φ(n)=npprimepn(1p1)
  2. gcd ⁡ ( n , m ) = 1 \gcd(n,m)=1 gcd(n,m)=1,则 φ ( n m ) = φ ( n ) φ ( m ) \varphi(nm)=\varphi(n)\varphi(m) φ(nm)=φ(n)φ(m),即 φ ( n ) \varphi(n) φ(n) 为积性函数

欧拉定理

gcd ⁡ ( a , n ) = 1 \gcd(a,n)=1 gcd(a,n)=1,则 a φ ( n ) ≡ 1 ( m o d n ) a^{\varphi(n)}\equiv1\pmod n aφ(n)1(modn)
构造 b i ( 1 ≤ i ≤ φ ( n ) ) b_i(1\le i\le\varphi(n)) bi(1iφ(n)) 为模 n n n 的简化剩余系,则 c i = b i ⋅ a ( 1 ≤ i ≤ φ ( n ) ) c_i=b_i\cdot a(1\le i\le\varphi(n)) ci=bia(1iφ(n)) 也为模 n n n 的简化剩余系
∏ i = 1 φ ( n ) c i ≡ ∏ i = 1 φ ( n ) b i ( m o d n ) \prod\limits^{\varphi(n)}_{i=1}c_i\equiv\prod\limits^{\varphi(n)}_{i=1}b_i\pmod n i=1φ(n)cii=1φ(n)bi(modn)
∏ i = 1 φ ( n ) b i ⋅ a ≡ ∏ i = 1 φ ( n ) b i ( m o d n ) \prod\limits^{\varphi(n)}_{i=1}b_i\cdot a\equiv\prod\limits^{\varphi(n)}_{i=1}b_i\pmod n i=1φ(n)biai=1φ(n)bi(modn)
约去 ∏ i = 1 φ ( n ) b i \prod\limits^{\varphi(n)}_{i=1}b_i i=1φ(n)bi,得 a φ ( n ) ≡ 1 ( m o d n ) a^{\varphi(n)}\equiv1\pmod n aφ(n)1(modn),证毕。

扩展欧拉定理

由欧拉定理,得到扩展欧拉定理: a n ≡ a n   mod   φ ( n ) + φ ( n ) ( m o d n ) a^n\equiv a^{n\>\text{mod}\>\varphi(n)+\varphi(n)}\pmod n ananmodφ(n)+φ(n)(modn)

代码(就是快速幂,不贴了

习题

相关推荐

  1. 数论

    2024-01-28 21:52:02       39 阅读
  2. 【算法基础 & 数学函数

    2024-01-28 21:52:02       52 阅读
  3. AcWing.873.函数

    2024-01-28 21:52:02       45 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-28 21:52:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-28 21:52:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-28 21:52:02       82 阅读
  4. Python语言-面向对象

    2024-01-28 21:52:02       91 阅读

热门阅读

  1. 花式分析一个5M的SQL占用70GB内存

    2024-01-28 21:52:02       51 阅读
  2. 力扣365-水壶问题

    2024-01-28 21:52:02       51 阅读
  3. Mybatis的XML配置

    2024-01-28 21:52:02       51 阅读
  4. MyBatis --- 常用注解

    2024-01-28 21:52:02       54 阅读
  5. 前端-打卡每日面试题-数据类型(2024.1.26)

    2024-01-28 21:52:02       51 阅读