当前位置: 首页 > news >正文

数论杂记 2025.8.11始

0x1f Bézout 定理

如果 \(a,b\) 均为整数,则方程 \(ax + by = \gcd(a,b)\) 一定有解。

可以使用构造法证明,也就是 \(exgcd\)。。。

证明:

对于 \(ax + by = c\),对其进行变换 \(bx + (a \% b)y = c\)

如果我们知道后者的解 \(x_1,y_1\),那么有

\[\begin{align} ax_0 + by_0 &= bx_1 + (a \% b)y_1 \\ ax_0 + by_0 &= bx_1 + (a - \lfloor \cfrac{a}{b} \rfloor \times b)y_1 \\ ax_0 + by_0 &= ay_1 + b(x_1 - \lfloor \cfrac{a}{b} \rfloor \times y1) \end{align} \]

待定系数法得出 \(\begin{cases} x_0 = y1 \\ y_0 = x_1 - \lfloor \cfrac{a}{b} \rfloor \times y1 \end{cases}\)

显然根据辗转相除法,一定有 \(a\%b = 0\) 时,此时 \(ax = c\)\(x = \dfrac{c}{a}\)

而当 \(a\%b = 0\) 时,\(a\)\(\gcd(a,b)\),即 \(x = \dfrac{c}{\gcd(a,b)}\)

\(c | \gcd(a,b)\) 时, \(x\) 有整数解。

证毕。\(\square\)

0x2f exgcd

想必你也已经发现了,根据证明 Bézout 定理 的过程,我们已经可以知道 \(ax + by = \gcd(a,b)\) 的一个解了。

那么这一节主要讲各种解的算法。

  1. 判断 \(ax + by =c\) 有无解

    \(\textbf{Theorem}\):一个 \(ax + by =c\) 方程有解,当且仅当 \(c | \gcd(a,b)\)

    必要性:前文已经阐述。

    充分性:\(\gcd(a,b)|a \and \gcd(a,b)|b \to \gcd(a,b)|c\)

  2. 通解

    先举个例子:

    \(3x + 2y = 18\)

    你会怎么解?

    首先随便找到一组解 \(x = 4,y = 3\)

    再减小 \(x\),增加 \(y\) 就找到另一组解 \(x = 2,y = 6\)

    那么设 \(x\) 的变化量 \(\Delta x\)\(y\) 的变化量 \(\Delta y\)

    显然 \(a(x + \Delta x) + b(y + \Delta y) = c\)

    \(a \Delta x + b \Delta y = 0\)

    显然我们想让 \(\Delta x/\Delta y\) 绝对值最小。

    \(\Delta x\)\(\cfrac{a}{\gcd(a,b)}\) 时。

    原式转换成 \(1 - 1 = 0\)

    所以我们得到了通解。

    \[a(x + k\cfrac{a}{\gcd(a,b)}) + b(y - k\cfrac{b}{\gcd(a,b)}) = c \]

  3. \(x/y\) 最小正整数解

    对于 \(x = x + k\cfrac{a}{\gcd(a,b)}\) 最小正整数解,设 \(g = \cfrac{a}{\gcd(a,b)}\)

    \((x \%g + g)\%g\) 产生(因为 \(g\) 是步长)。

  4. 方程是否有正整数解

    我们一定有 \(x_{\min} \to y_{\max}\),对吧!

    此时若 \(y_{\max} \le 0\),则无正整数解。

  5. 推推推论

    \(\sum_{i=1}^n {a_i \times x_i} = c\) 的通解,当且仅当 \(c | \gcd_{i=1}^n a_i\)

0x3f 乘法逆元

定义:\(a \times a^{-1} \equiv 1 \pmod{p}\)\(a^{-1}\)\(a\) 在模 \(p\) 意义下的逆元。

应用场景:在模意义下除以一个数时,只能乘它的逆元。

下面给出三种求逆的方法,在不同地方用到:

  1. 费马小定理

    优点:大部分人都会,求单个逆元

    缺点:要求互素。

    \(n\) 是素数,\(a\)\(n\) 互素,有 \(a^{n-1} \equiv 1 \pmod n\)

    变形 \(a \times a^{n-2} \equiv 1 \pmod n\)

    所以此时 \(a^{n-2}\) 为逆元。

  2. \(\textbf {exgcd}\) 求解

    \(ax \equiv 1 \pmod n\),求 \(x\)

    \(ax + bn = 1\)

    \(exgcd\) 求解即可。

  3. 递推求逆元

    我们知道 \(1^{-1} = 1 \pmod n\)

    首先有 \(i \times \lfloor \dfrac{p}{i} \rfloor + p\mod i \equiv 0 \pmod p\)

    \(p \mod i\) 的逆元我们已经一定求出来了,整个式子同乘 \(i^{-1} (p \pmod i)^{-1}\)

    \[i^{-1} = -(p \pmod i)^{-1} \times \lfloor \dfrac{p}{i} \rfloor \]

    递推式证毕。\(\square\)

  4. 补充:倒推求逆元法

    为什么要在这里介绍呢?因为它可以在 \(O(n)\) 内递推任意 \(n\) 个数的逆元。

    证明:

    假设我们有一列数 \(a_1,a_2,a_3,\dots,a_n\)

    1. 用循环求出数列的前缀积。
    2. \(exgcd\) 或费马小定理计算 \(\prod_{i=1}^n a_i\) 的逆元。
    3. 根据 \(\dfrac{1}{\prod_{i=1}^{k-1} a_i} = \dfrac{a_k}{\prod_{i=1}^{k} a_i}\),求出任意前缀积的逆元。
    4. 根据 \(\dfrac{1}{a_k} = \dfrac{\prod_{i=1}^{k-1} a_i}{\prod_{i=1}^{k} a_i}\),求出任意 \(a_i\) 的逆元。

    证毕。\(\square\)

0x4f 中国剩余定理

对于下列的同余方程组,能否知道解的情况呢?

\[\begin{cases} x\equiv a_1\pmod{m_1} \\ x\equiv a_2\pmod{m_2} \\ \dots \\ x\equiv a_n\pmod{m_n} \end{cases} \]

其中 \(m_i\) 两两互质。

中国剩余定理给出了解答,我们会阐述其充要性。

构造:

  1. \(M = \prod_{i=1}^n m_i\)

  2. \(M_i = \dfrac{M}{m_i}\)

  3. \(t_i = M^{-1} \pmod m_i\)

  4. \[x = kM + \sum_{j=1}^n {a_i t_i M_i} \]

证明:

  1. 充分性:

    由于 \(t_i\)\(M_i\) 的逆元,有 \(a_i t_i M_i \equiv a_i \pmod{m_i}\)

    由于 \(M\) 的定义,\(a_i t_i M_i \equiv 0 \pmod{m_j} (i \ne j)\)

    \(x = kM + \sum_{j=1}^n {a_i t_i M_i} \equiv 0 + (a_i + \sum_{j=1,j \ne i}^n 0) \pmod{m_i}\)

    综上得证。\(\square\)

  2. 必要性

    假设存在另一个解,\(x_1 \equiv x \pmod{M}\) 不成立(这里模 \(M\) 是消除步长),但是由于 \(x_1 \equiv a_i \equiv x \pmod{m_i}\)

    推广得到 \(\forall i,x_1 \equiv x \pmod{m_i}\)

    我们可以得到 \(x_1 \equiv x \pmod{M}\)

    假设推翻,固有唯一通解。

证毕。\(\square\)

http://www.sczhlp.com/news/9992/

相关文章:

  • 8 面向对象编程 8.5. final 关键字 8.6 抽象类 8.7 抽象类最佳实践-模板设计模式
  • [Atlas200I A2] 安装torch-npu
  • 题解:[Vani有约会] 雨天的尾巴 /【模板】线段树合并
  • 8.11随笔
  • 蒸馏大型语言模型并超越其性能
  • webrtc自定义端口和host
  • 【20250805省选训练】T3-简单树题
  • 让CPU省电的方法
  • IFEO劫持
  • GAS_Aura-Highlight Enemies
  • linux中node环境管理
  • 训练专有大模型的核心路径
  • 什么是 IAT Hook?
  • 学习新工具(覆盖程序员绝大部分需求的工具)(zz)
  • 20250811 之所思 - 人生如梦
  • 2025牛客多校第七场 双生、象牙 个人题解 - CUC
  • 大模型部署与应用的典型场景及技术挑战
  • 全球语言全覆盖:一款强大的多语言客服系统
  • Verify my blogs in Follow
  • MX-2025 盖世计划 C 班 Day 9 复盘
  • 3.2~3.4.2数据类型关键词
  • 三星SAMSUNG SCX-4521F 一体机驱动
  • macos 开放3306端口
  • GAS_Aura-GameMode
  • telnet localhost 3306 -bash: telnet: command not found
  • Python面向对象实战之扑克游戏
  • vim常见操作
  • 可能是校内题单题解(20250811)
  • 无痕检测是否注册iMessage服务,iMessages数据筛选,iMessage蓝号检测完美实现