初等数论学习笔记
By qifan_maker
部分内容参考或摘自 OI-wiki、笔记、讲义、小蓝本等,感谢,侵删
感谢帮助过我的 OIer 们!
数学
数论
裴蜀定理/Bezout
Build on 2024/6/15
Last updata on 2024/6/16
又称贝祖定理。
结论
\(ax+by = \gcd(a,b)~~~~~~~~~~(x,y\in \texttt Z)\)
证明
-
若 \(a\)、\(b\) 中任意一数为 \(0\) 时,结果显然。
-
若 \(a,b\) 不等于 \(0\),
由欧几里得算法(辗转相除法)可得以下式子:
\(b=aq_1+r_1(0\le r_1 < b_1)\);
\(a=r_1q_1+r_2(0\le r_2 < r_1)\);
\(r_1=r_2q_3+r_3(0\le r_3 < r_2)\);
\(\dotsb\)
\(r_{k-3}=r_{k-2}q_{k-1}+r_{k-1}\);
\(r_{k-2}=r_{k-1}q_k+r_k\);
\(r_{k-1}=r_{k}q_{k+1}\).
由 \(d = r_k\) 及 \(r_{k-2}=r_{k-1}q_k+r_k\) 得:
\(d = r_{k-2}-r_{k-1}q_k\)
将 \(r_{k-1}=r_{k-3}-r_{k-2}q_{k-1}\)(由 \(r_{k-3}=r_{k-2}q_{k-1}+r_{k-1}\) 变形) 带入上式得:
\(d = r_{k-2}-(r_{k-3}-r_{k-2}q_{k-1})q_k\)
\(d = r_{k-2}-r_{k-3}q_k+r_{k-2}q_{k-1}q_k\)
\(d = r_{k-2}(q_{k-1}q_k+1)-r_{k-3}q_k\)
观察可得 \(d\) 为 \(r_{k-2}\) 和 \(r_{k-3}\) 的“线性组合”,
线性组合(摘自小蓝本)
如果 \(a\mid b\),\(a\mid c\),那么对于任意整数 \(x,y\),都有 \(a\mid bx+cy\),(即 \(a\) 能整除 \(b\)、\(c\) 的任意一个整系数“线性组合”)
依此倒推,可得 \(d\) 为 \(a\) 和 \(b\) 的“线性组合”,即存在整数 \(x\)、\(y\) 使得:
\(d = ax+by\)
扩展欧几里得算法/Exgcd
Build on 2024/6/16
Last updata on 2024/6/17
简介
扩展欧几里得算法(Extended Euclidean algorithm, EXGCD),常用于求 \(ax+by=\gcd(a,b)\) 的一组可行解。
证明
设
\(ax_1+by_1=\gcd(a,b)\)
\(bx_2+(a\bmod b)y_2=\gcd(b,a\bmod b)\)
由欧几里得定理可知:\(\gcd(a,b)=\gcd(b,a\bmod b)\)
所以 \(ax_1+by_1=bx_2+(a\bmod b)y_2\)
又因为 \(a\bmod b=a-(\lfloor\frac{a}{b}\rfloor\times b)\)
所以:
\(ax_1+by_1=bx_2+(a-(\lfloor\frac{a}{b}\rfloor\times b))y_2\)
\(ax_1+by_1=ay_2+bx_2-\lfloor\frac{a}{b}\rfloor\times by_2\)
\(ax_1+by_1=ay_2+b(x_2-\lfloor\frac{a}{b}\rfloor y_2)\)
因为 \(a=a,b=b\),所以 \(x_1=y_2,y_1=x_2-\lfloor\frac{a}{b}\rfloor y_2\)
将 \(x_2,y_2\) 由欧几里得算法代入递归求解直至 \(b\) 为 \(0\) 时,\(a\) 即为 \(gcd(a,b)\),递归 \(x=1,y=0\) 回去求解。
实现
ll exgcd(ll a,ll b,ll &x,ll &y){
if (!b){x=1,y=0;return a;}
ll d = exgcd(b,a%b,x,y);
ll t = x;
x = y;
y = t-(a/b)*y;
return d;
}
函数返回的值为 \(\gcd(a,b)\),在这个过程中计算 \(x,y\) 即可。
费马小定理/Fermat
Build on 2024/6/22
Last updata on 2024/6/23
结论
若 \(p\) 为素数,\(\gcd(a, p) = 1\),则 \(a^{p - 1} \equiv 1 \pmod{p}\)。
另一个形式:对于任意整数 \(a\),有 \(a^p \equiv a \pmod{p}\)。
证明
-
若 \(p \mid a\),结果显然。
-
若 \(p \nmid a\),
设 \(x_1,x_2,\dotsb,x_{p-1}\) 是 \(1,2,\dotsb,p-1\) 的一个排列。
首先证明 \(ax_1,ax_2,\dotsb,ax_{p-1}\) 中任意两数对 \(p\) 不同余,
若 \(ax_i \equiv ax_j \pmod p\),则 \(p \mid a(x_i-x_j)\),
又因为 \(p \nmid a\) 且 \(p\) 为质数,所以 \(p \mid x_i-x_j\),
若 \(p\) 不为素数,如 \(p=st\) 时,
可以有 \(s\) 来自 \(a\),\(t\) 来自 \(x_i-x_j\),于是可能存在 \(p \nmid x_i-x_j\)。
但 \(x_i\) 与 \(x_j\) 对模 \(p\) 不同余,不成立。
若 \(p \mid x_i-x_j\),则 \(x_i-x_j \bmod p = 0\),故 \(x_i \equiv x_j \pmod p\)
由于 \(\{ax_1,ax_2,\dotsb,ax_{p-1}\} \bmod p = \{1,2,\dotsb,p-1\}\),
设 \(f=(p-1)!\), 则 \(f\equiv (ax_1)(ax_2)\dotsb(ax_{p-1}) \pmod p\)
\(a^{p-1}\times f \equiv f \pmod p\)
\(a^{p-1} \equiv 1 \pmod p\)
Q.E.D
乘法逆元
Build on 2024/6/22
Last updata on 2024/6/23
简介
如果一个线性同余方程 \(ax \equiv 1 \pmod b\),则 \(x\) 称为 \(a \bmod b\) 的逆元,记作 \(a^{-1}\)。
注意
快速幂求解用到费马小定理,要求模数为素数,而扩欧要求 \(gcd(a,b)=1\)。
扩展欧几里得求解
见 扩展欧几里得算法,
快速幂求解
因为 \(ax \equiv 1 \pmod b\);
所以 \(ax \equiv a^{b-1} \pmod b\)(根据 费马小定理);
所以 \(x \equiv a^{b-2} \pmod b\)。
然后我们就可以用 快速幂 来求了。

浙公网安备 33010602011771号