【数论】从模运算到费马小定理 #39
Demian101
started this conversation in
Show and tell
Replies: 1 comment
-
在扩展欧几里得一节的步骤2中提到"比如 $ gcd(32,18)=gcd(18,4)=gcd(4,2)=2 $ ",其中的 $ gcd(32,18)=gcd(18,4) $ 这一步骤是怎么得来的? |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
整除
Prime 素数
定义: 设$n \in Z \ \ 且 \ \ n \ge 2$ ,除了
1
和n
以外,没有其他正整数整除 n,则n
称作“素数”(通常用p
表示) ;否则, n 称作“合数”
引理 : 任何 > 1 的整数都有素因子(素数因子)
素因子
;反证法 + 突破边界
来证明 :引理 : 任何合数$n$ 都至少有一个不大于 $\sqrt{n}$ 的素因子$n \ge 1$ 是合数, 则存在 Prime $p$ , 使得 $p<= \sqrt{n}$
即: 若
此引理可用来精简判断 n 是否是素数 :
n
, 则n
是素数算术基本定理
算术基本定理,又称为正整数的唯一分解定理,即:
算术基本定理的内容由两部分构成:
利用"算数基本定理" 证明
素数有无穷多个
:证明 1 :
$$
\begin{aligned}
& \left{\begin{array}{l}
\mathrm{p}_{\mathrm{k}} \mid \mathrm{P}=\mathrm{p}1 \mathrm{p}2 \cdots \mathrm{p}{\mathrm{n}}+1 \
\mathrm{p}{\mathrm{k}} \mid \mathrm{p}1 \mathrm{p}2 \cdots \mathrm{p}{\mathrm{n}}
\end{array} \Rightarrow \mathrm{p}{\mathrm{k}} \mid 1\right.
\end{aligned}
$$
证明 1 :
证明: 假设素数只是有限个:$P_1, ... , P_k$ 。
Mod 模运算
负数求模 (类似把时钟向回拨)
模运算的性质 :
模运算与基本四则运算有些相似,但是除法例外。其规则如下:
栗子 :
辗转相除法
互素 :$a, \ b \in Z$ , 若 $gcd(a,b) == 1$ 则称 a, b 互素
设
辗转相除法 :
原理 :
举例 :
欧几里得算法 Euclidean Algorithm
欧几里得算法 就是 辗转相除法(Euclidean Algorithm)
下面是一个例子,说明如何使用欧几里得算法求解 30 和 21 的最大公约数:
贝祖等式/定理
贝祖等式是数论中的一个重要定理,它表明对于任意两个大于 1 的正整数 a 和 b,它们的最大公约数(GCD)与最小公倍数(LCM)的乘积等于这两个数的乘积 。即:
以下是一个贝祖等式的例子:
假设我们要求$18$ 和 $24$ 的最大公约数和最小公倍数。首先,我们可以使用欧几里得算法来计算它们的最大公约数:
接下来,我们可以使用以下公式来计算它们的最小公倍数:
现在,我们可以将贝祖等式应用于这个例子中:
这个例子证明了贝祖等式的正确性。
拓展欧几里得
拓展欧几里得算法是一种求解两个数的 最大公约数(Greatest Common Divisor,简称 GCD)以及它们的 贝祖等式(Bézout's identity)的算法。
拓展欧几里得算法的基本思想是通过 递归 计算两个数的最大公约数,并在每一步中计算出一个关于 x 和 y 的线性组合,以便最终得到贝祖等式中的 x 和 y 值。
具体来说,要求解$a \ \ 和 \ \ b \quad (a ≥ b)$ 的最大公约数
gcd(a,b)
,可以执行以下步骤:gcd(a,b) = a
,此时 x = 1,y = 0,返回结果;gcd(b,r)
并得到相应的这样我们就得到了 a 和 b 的最大公约数以及对应的 x 和 y 值,满足贝祖等式 ax + by = gcd(a,b)。
最小公倍数 (Least common Multiple)
比如$lcm(6,8) = 24 , lcm(3,5) =15$
奇妙的定理 :
比如
证明: 略.
等价关系 equivalence relation
例如, 对于实数集合$R$ , 二元关系 $=$ , 举个超级简单的例子 :
定义等价关系 : 设集合 S, 定义在 S 上的二元关系 Rls , 如果 R 满足以下性质 , 则称它为 "等价关系" :
同余 congruence
设$n$ 为正整数,整数 $a$ 和 $b$ 分别模 $n$ ,如果得到相同的余数,就称 $a$ 和 $b$ 在模 $n$ 下满足同余关系(congruence relation), 简称同余。 同余可以写作如下形式 :
定义 同余关系 : 设$a,b, n \in Z , \ n >0$ , 如果 $n|a-b$ , 就称 $a$ 和 b 在模 n 下同余, 记作 $a \equiv_m b$
证明 :
重要性质:
$a \equiv_m b \quad <==>\quad a=qn+b ,\quad \exists q \in Z$
congruence 关系是一种
equivalent relation
同余的运算性质
乘法逆元 Modular Inverse
在数学中,给定一个元素$a$ 和一个数 $n$ ,如果存在一个元素 $b$ ,使得 $a$ 和 $b$ 的乘积模 $n$ 等于 $1$ ,则我们称 $b$ 是 $a$ 关于模 $n$ 的乘法逆元,通常用 $a$ 的倒数表示,即 $b=a^{-1}$ 。
举个例子 : 计算
14/4 mod 5
:计算到这里 , 模运算下最后的计算结果必然是一个整数, 所以$\frac{1}{2}$ 必然要进行转化 :$7 \times \frac{1}{2} \mod 5$ " 就可以理解为 " $7 \times 2 的乘法逆元 \mod 5$ "
"
因为$2 \times 3 \mod 5 == 1$ , 所以 3 是 2 在模 5 下的乘法逆元 (倒数)$2^{-1} == 3 \ \ \ \ (mod \ \ 5)$
即
为了加深记忆, 请计算$2^{-1} \mod 7$ ??
再来看几个
现在,我们来详细解释下乘法逆元的定义和性质。
定义: 设$a \in Z , \ \ z \in N , \ \ \ If \quad az \equiv 1 \mod n$ , 则称 z 是模 n 下 a 的乘法逆元, 记作 $a^{-1} = z$
首先,我们要注意到,如果 n 不是质数,那么可能存在某些元素 a 没有乘法逆元。例如,如果$n=6$ ,那么元素 2 没有乘法逆元,$2 \times \ ? \ = 1 \mod 6$ , 这个数不存在。因此,我们在定义乘法逆元时,通常要求 n 是一个质数。
因为
一次同余方程
首先看一个错误例子 :
把$9 \equiv 3 \mod 6$ 变换一下, 变成等式的形式 :
如例 : $\begin{aligned} 21x ≡ 14 \mod 35\end{aligned}$
gcd(a, m) = gcd(21, 35) = 7
。因为 7 整除 14,所以我们可以将方程两边同时除以 7,引出 : 同余下的消去律$a,n \in Z \ , \quad n>0$ , 如果 $gcd(a, n) = d$ , 则有 :
设
再看一个例子 :
但是最后的答案并不是$x \equiv 1$ , 因为这个式子表示的是 : x 和 1 在模 2 下同余, 任何一个➗ 2 == 1 的整数都是方程的解
{..., -3, -1, 1, 3, 5, 7 ...}
规律:
原模数为 n, 最终模数为 n' , 设 n/n' = d, 有 : 0 ~ n-1 之间解的数量恰好 == d
剩余类
剩余类,也叫模意义下的剩余系,是指对于给定的正整数模数 n,所有模 n 意义下不同的整数构成的集合。其中,模$n$ 意义下的整数是指与n的除数关系相同的整数,即模 n 意义下等价的整数。
举个例子,假设我们要考虑模5意义下的剩余类。那么,对于任意一个整数 x ,它与 5 的除数关系可以表示为 :
其中 a 是一个整数且满足 0 ≤ a < 5。也就是说,x 与 a 在模 5 意义下是等价的,即它们属于同一个剩余类。
因此,模5意义下的剩余类可以表示为5 组 {0, 1, 2, 3, 4},分别对应着
比如模 5 下余数为 0 的剩余类, 就记作
[0] / [5]
中国剩余定理
如果你有一些关于同余方程的问题,例如:
那么中国剩余定理告诉你,只要这些模数 m1, m2, m3, ..., mk 互质(也就是没有共同的因数),那么一定存在一个解 x,而且这个解是唯一的,且在模数 m1 × m2 × m3 × ... × mk 的意义下。
解决这个问题的方法是,首先用扩展欧几里得算法计算出每个模数 mi 对于所有其他模数的乘积的逆元 ti,然后计算出
x = (a1 * t1 * M/m1) + (a2 * t2 * M/m2) + ... + (ak * tk * M/mk) (mod M)
其中 M = m1 × m2 × m3 × ... × mk 是所有模数的乘积,ti 是 mi 对于 M/mi 的逆元,也就是满足 ti × mi ≡ 1 (mod M/mi) 的数。这个公式就是中国剩余定理的核心。
需要注意的是,如果这些模数不互质,那么这个公式可能没有解,或者有多个解。因此在使用中国剩余定理的时候,必须要先检查这些模数是否互质。
中国剩余定理(Chinese Remainder Theorem)是一个用于解决同余方程组的定理,其基本思想是将一个大的同余方程组分解为若干个小的同余方程组,然后分别求解再合并起来,从而得到整个方程组的解。
下面以一个简单的例子来介绍中国剩余定理:
假设我们要解决以下同余方程组:
根据中国剩余定理,我们可以将它分解为三个小的同余方程组:
然后,我们可以分别求解这三个方程组。例如,
最后,根据中国剩余定理,我们可以将这三个解合并起来,得到整个方程组的解:
化简得$x \equiv 2338\pmod{105}$ ,因此 $x=2338+105k$ ,其中 $k$ 是任意整数。这样,我们就求出了该同余方程组的所有解。
质因数分解
要分解一个数的质因数,可以按照以下步骤进行:
举个例子,假设要分解的数为 24 :
需要注意的是,如果要分解的数是质数,那么其质因数分解只有一个因数,即它本身。
欧拉函数
欧拉函数,又称欧拉-φ 函数(Euler's totient function),是一种重要的数论函数。
对于任意正整数 n,欧拉函数 φ(n) 定义为小于或等于 n 的正整数中与 n 互质的数的个数,即:
其中$gcd(a,b)$ 表示 $a$ 和 $b$ 的最大公约数。
例如,当 n = 6 时,小于或等于 6 的正整数中,与 6 互质的数有 1、5,因此$φ(6) = 2$ 。
欧拉函数的一些性质如下:
如 :
性质 3 可能比较复杂 :
如果$n=p_1^{k_1}p_2^{k_2}\cdots p_r^{k_r}$ 是 $n$ 的质因数分解式(见 [[#质因数分解]]),那么
这个公式告诉我们,欧拉函数可以用$n$ 的质因数分解式来计算。下面是一个例子:
假设$n = 210 = 2 \cdot 3 \cdot 5 \cdot 7$ ,那么
因为小于等于 210 的正整数中,与 210 互质的数共有 48 个。
性质 5 :
看一下$\varphi(p^k)$ 的定义 :
我们知道,小于或等于$p^k$ 的正整数中,包含 $p$ 这个质因数的数的个数是 $p^{k-1}$ 。这是因为,这些数可以表示为 $p \times m$ 的形式 :
如$\underbrace{p\times 0, \ \ p\times 1, \ \ p\times 2 , ... , p \times (p^{k-1} - 1)}_{共 \ \ p^{k-1} \ \ 个}$
其中$m$ 是小于或等于 $p^{k-1}$ 的正整数,因此有 $p^{k-1}$ 个选项。而这些数不与 $p^k$ 互质,因此它们不能被计入 $\varphi(p^k)$ 。
因此,小于或等于$p^k$ 的正整数中,与 $p^k$ 互质的数的个数就是 $p^k - p^{k-1}$ 。因为 $p$ 是一个质数,所以小于 $p$ 的正整数中,与 $p$ 互质的数的个数是 $p-1$ 。因此,我们可以得到:
这就证明了$\varphi(p^k) = p^{k-1} \varphi(p)$ 。
举个栗子 :
试计算$\varphi(30000)$ :
现代计算机与因子分解
对于现代计算机而言,当待分解的数变得非常大时,因子分解问题就变得极其困难,需要进行大量的计算才能找到其因子。
如$n =pq$ , 其中 $p$ 和 $q$ 是不同的大素数 , 如果这 2 个素数的长度达到 1024 bit, 就目前计算机的水平而言, 除非这 2 个素数有特殊的结构, 否接就基本不可能分解 $n$ , 要计算 $\varphi(n)$ 也就不现实, 这个困难问题就被著名的 RSA 算法所应用
然而,对于量子计算机而言,比如应用 Shor 算法,由于其量子并行性的优势,因子分解问题的难度可以得到大幅降低,这使得一些现有的密码算法 (如 RSA) 在量子计算机的攻击下变得不安全。
不过量子计算机的研制还很远, 更重要的问题是快速找到因子分解的算法
乘法阶
对于一个正整数$a$ 和正整数 $n$ ,它们的乘法阶是指最小的正整数 $k$ ,使得 $a^k\equiv 1\pmod{n}$ 。
换句话说,乘法阶是指将$a$ 不断自乘,直到得到 1(模 $n$ 下),所需要自乘的次数。
如果这样的$k$ 不存在,则$a$在模$n$下没有乘法逆元,即$a$和$n$不互质。
乘法阶有以下性质:
欧拉定理 :
(欧拉定理) : 设$a \in {Z_n}^*$ , 则 :
且$k\mid \varphi(n)$ , 其中 $k$ 是 $a$ 在模 $n$ 下的阶
举例 :$2^{\varphi(5)} ≡ 1 \pmod 5$ , 即 2 的 (5-1) 次方 模 5 = 1 。
欧拉定理的证明很有技巧性 :
首先,我们要证明一个引理:对于任意正整数$a$ 和 $b$ ,如果 $a$ 和 $b$ 互质,则存在正整数 $k$ 和 $l$ ,使得$ka+lb=1$。
证明:我们可以用扩展欧几里得算法来证明这个引理。根据扩展欧几里得算法,我们可以找到两个数$x$ $y$ ,满足 $\gcd(a,b)=ax+by$ 。因为 $a$ 和 $b$ 互质,所以 $\gcd(a,b)=1$ 。因此我们可以写出:
和
因此,$k=x$,$l=y$,我们得证。
现在,我们考虑欧拉定理。对于任意正整数$a$ 和模数 $n$ ,如果 $a$ 和 $n$ 互质,那么我们可以找到一个整数$k$,使得$ak\equiv 1\pmod{n}$,根据引理,我们可以找到一个正整数$l$,使得 $ak+nl=1$ 。因此,我们可以得到:
以此类推,我们可以得到:
因为$\gcd(a,n)=1$ ,所以 $a$ 的欧拉函数 $\varphi(n)$ 等于模数 $n$ 的欧拉函数。因此,我们可以写出:
因此,欧拉定理得证。
欧拉定理举例
欧拉定理给出了一个关于模运算的定理,如果$a$ 和 $m$ 是互质的正整数,则有
其中$\varphi(m)$ 是欧拉函数,表示小于等于 $m$ 的正整数中与 $m$ 互质的数的个数。
对于模$8$ ,我们知道 $\varphi(8) = 4 \quad (\because \varphi(8) =\varphi(2^3)= 2^2\varphi(2) = 4)$ , 因此,根据欧拉定理,对于任何一个与 $8$ 互质的正整数 $a$ ,都有
现在考虑$3^{2022} \pmod 8$ ,我们可以将 $2022$ 写成 $2022 = 4 \times 505 + 2$ ,然后使用欧拉定理得到:
因此,$3^{2022}$ 除以$8$ 的余数为 $1$ 。
对于这个题来说 :
mod 8
, 先求一下费马小定理
欧拉定理 :
对于欧拉定理,特别地,当$p \in {素数}$ 时,该结论加强为 [费马小定理]
Exercise
首先,我们可以将$20212017^2$ 表示为 $(20212022-5)^2$ ,即:
我们想要求出$20212017^2$ 除以 $20212022$ 的余数,因此我们只需要求出 $2\cdot5\cdot20212022$ 和 $5^2$ 除以 $20212022$ 的余数,然后将这两个余数相加,再用 $20212022$ 减去这个和,就是所求的余数。
接下来,我们来计算$5^2$ 除以 $20212022$ 的余数。我们可以使用模运算的另一个性质:如果 $a\equiv b\pmod m$ ,那么 $a^k\equiv b^k\pmod m$ ,其中 $k$ 是任意正整数。因此:
现在我们将这两个余数相加,并用$20212022$ 减去和,得到:
因此,$20212017^2$ 除以$20212022$ 的余数是 $-20211987$ ,或者等价地,$20212022-20211987=\boxed{35}$。
The third-smallest positive value of$x$ for which $2^x \equiv 3~(mod~13)$ is therefore $x = 5+6\cdot 2 = \boxed{17}$ .
Beta Was this translation helpful? Give feedback.
All reactions