初等数论学习笔记

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)\)

证明
  1. \(a\)\(b\) 中任意一数为 \(0\) 时,结果显然。

  2. \(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}\)

证明
  1. \(p \mid a\),结果显然。

  2. \(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\)

然后我们就可以用 快速幂 来求了。

posted @ 2024-06-23 01:58  qifan_maker  阅读(72)  评论(0)    收藏  举报