2023.10.1 闲话
大家,国庆节快乐!
看了东方人气排行,魔理沙很强。
唉,QQ 在开学日整了个「放假啦」的掉落字母特效。我看的时候 CF 刚结束,我看掉下来一个「假啦」吓我一跳,仔细一看原来是「放假啦」。
有人说,人的有三次死亡。被人遗忘之后,就幻想入了吧。在幻想的世界里,死亡可是被良定义的哦?
推歌:からくれなゐに恋してるのは - inno feat. 初音ミク。
但是最近那个羽衣的歌挺萌的。
想起了 yspm 闲话。难道这就是 bobo 说的「等你到……就会想起我说的……」???
无论你是通过什么渠道点进来的,希望你能在这篇闲话中获得愉悦。
我可能需要改进一下 Windows 下我博客的阅读体验,主要是那个 NOI Linux 的 sans-serif 太好看了(
发布时间是 1:54 哦!
高斯整数整除理论的一些说明
本文源码约 29K,可能需要一定时间加载 \(\rm\LaTeX\) .
我想对于这类体系还是需要整理一下结构 .
若无特殊说明,不展开证明的定理都是显然的 .
预备知识
二元运算与代数系统
\(\textbf{定义 1.1.1}\text{ (二元运算)}\)
设 \(X\) 为一给定集合,称映射 \(f:X^2\to X\) 为集合 \(X\) 上的一个二元运算 . 即对于任意 \((a,b)\in X^2\),存在唯一的 \(h\in X\) 与其对应,记作 \(h=f(a,b)\) 或 \(h=a\circ b\) .
\(\textbf{定义 1.1.2}\text{ (交换律、结合律)}\)
对于定义在 \(X\) 上的二元运算 \(\circ\),如果对任意 \(a,b\in X\) 有 \(a\circ b=b\circ a\),则称这个二元运算是交换的 . 若对任意 \(a,b,c\in X\) 有 \((a\circ b)\circ c=a\circ(b\circ c)\),则称这个二元运算是结合的 .
\(\textbf{定义 1.1.3}\text{ (封闭性)}\)
设 \(S\subseteq X\),\(\circ\) 是 \(X\) 上的二元运算,若对任意 \(a,b\in S\) 都有 \(a\circ b\in S\),则称集合 \(S\) 对运算 \(\circ\) 封闭 .
\(\textbf{定义 1.1.3}\text{ (代数系统)}\)
在其上定义了若干二元运算 \(\circ,\star,\cdots\) 的集合 \(X\) 称为一个代数系统 . 如上述代数系统可记作 \((X,\circ,\star,\cdots)\)
如无特殊说明,我们不对集合 \(X\) 和建立在 \(X\) 上的代数系统加以区分 . 其具体含义可以根据语境推知 .
半群、群和环
\(\textbf{定义 1.2.1}\text{ (半群、交换半群)}\)
称代数系统 \((X,\circ)\) 是一个半群,当且仅当 \(\circ\) 是结合的 . 特别地,如果 \(\circ\) 是交换的,则称 \((X,\circ)\) 为交换半群 .
\(\textbf{定义 1.2.2}\text{ (半群的幺元素、幺半群)}\)
半群 \((X,\circ)\) 中的元素 \(e\) 如果满足对任意 \(a\in X\) 有 \(a\circ e=e\circ a=a\),则称 \(e\) 为 半群 \((X,\circ)\) 的幺元素 . 存在幺元素的半群称作幺半群 .
\(\textbf{定理 1.2.1}\)
半群中的幺元素要么不存在,要么有且仅有一个 .
\(\textbf{定义 1.2.3}\text{ (可逆元素)}\)
设幺半群 \((X,\circ)\) 的幺元素位 \(e\),对于 \(a\in X\),若存在 \(b\in X\) 使得 \(a\circ b=b\circ a=e\),则称 \(a\) 为可逆元素(或单位元素),\(b\) 为 \(a\) 的逆元素,记作 \(b=a^{-1}\) .
\(\textbf{定理 1.2.1}\)
对于半群中的每一个可逆元素,其逆元素唯一 .
\(\textbf{定义 1.2.4}\text{ (群、交换群)}\)
称半群 \((X,\circ)\) 是一个群,当且仅当它的每一个元素都可逆 . 特别地,如果 \(\circ\) 是交换的,则称 \((X,\circ)\) 为交换群 .
\(\textbf{定义 1.2.5}\text{ (环、交换环)}\)
代数系统 \((X,\oplus,\odot)\) 称为环当且仅当:
- \((X,\oplus)\) 是一个交换群,通常称作环的加法群 .
- \((X,\odot)\) 是一个半群,通常称作环的乘法半群 .
- 对于任意 \(a,b,c\in X\),有:
\[\begin{aligned}&a\odot(b\oplus c)=(a\odot b)\oplus(a\odot c)\\&(b\oplus c)\odot a=(b\odot a)\oplus(c\odot a)\end{aligned} \]特别的,如果 \(\odot\) 是交换的,那么称 \((X,\oplus,\odot)\) 为交换环 .
\(\textbf{定义 1.2.6}\text{ (零元素)}\)
如果环 \((X,\oplus,\odot)\) 的加法群 \((X,\oplus)\) 有幺元素 \(o\),则称 \(o\) 为环 \(X\) 的零元素 .
\(\textbf{定义 1.2.7}\text{ (幺元素)}\)
如果环 \((X,\oplus,\odot)\) 的乘法半群 \((X,\odot)\) 有幺元素 \(e\),则称 \(e\) 为环 \(X\) 的幺元素 .
\(\textbf{定义 1.2.8}\text{ (单位元素)}\)
环 \((X,\oplus,\odot)\) 的乘法半群 \((X,\odot)\) 的单位元素 \(\varepsilon\) 称作环 \(X\) 的单位元素 .
\(\textbf{定义 1.2.9}\text{ (相伴数)}\)
设 \(\varepsilon\) 为环 \((X,\oplus,\odot)\) 的单位元素,对于 \(a,b\in X\),若 \(a\odot\varepsilon=b\),则称 \(a,b\) 互为相伴数,记作 \(a\sim b\) .
\(\textbf{定理 1.2.3}\)
相伴关系是等价关系 .
\(\textbf{定义 1.2.10}\text{ (零因子)}\)
环 \((X,\oplus,\odot)\) 零元素为 \(o\),若 \(o\neq a,b\in X\) 满足 \(a\odot b=o\),则称 \(a\) 是 \(X\) 的左零因子,\(b\) 是 \(X\) 的右零因子 . 显然在交换环中,左右零因子是一致的 .
\(\textbf{定义 1.2.11}\text{ (整环)}\)
\(X\) 是至少有两个元素的交换环,若 \(X\) 有幺元素,无零因子,则称 \(X\) 为整环 .
为了叙述简洁,在不引起歧义的情况下,用 \(o, e, \varepsilon\) 分别表示对应代数系统中的零元、幺元和单位元 .
高斯整数 \(\Z[\mathrm i]=\{a+b\mathrm i\mid a,b\in\Z\}\),类似的定义有 \(\mathbb Q[\mathrm i]\) .
为了不引起混淆,下文叙述中,可能将 \(\Z\) 称为有理整数,\(\Z\) 中的素数称为有理素数等 .
整除理论
\(\Z\) 中的整除理论
\(\textbf{定义 2.1.1}\text{ (整除)}\)
设 \(a,b\in\Z\) 且 \(a\neq 0\),若存在 \(x\in\Z\) 使得 \(b=ax\),则称 \(a\) 整除 \(b\),记作 \(a\mid b\) . 同时称 \(a\) 是 \(b\) 的约数,\(b\) 是 \(a\) 的倍数 .
对于 \(0\neq b\in\Z\),称 \(\pm1,\pm b\) 为 \(b\) 的平凡约数,其他因数称为非平凡约数 .
\(\textbf{定义 2.1.2}\text{ (不可约数)}\)
设 \(p\in\Z\setminus\{0,\pm1\}\),若 \(p\) 没有非平凡约数,则称 \(p\) 是 \(\Z\) 中的不可约数 .
\(\textbf{定义 2.1.3}\text{ (素数)}\)
若 \(p\in\Z\) 对于任意 \(a,b\in Z\) 且 \(p\mid ab\) 有 \(p\mid a\) 或 \(p\mid b\),则称 \(p\) 是 \(\Z\) 中的素数 .
\(\textbf{定理 2.1.1}\)
\(\Z\) 中的不可约数和素数是一致的 .
\(\textbf{定理 2.1.2}\text{ (带余除法)}\)
对于 \(a,b\in\Z\) 且 \(a\neq 0\),存在唯一的 \(q,r\in Z\) 满足 \(b=qa+r\),其中 \(0\le r\le|a|\) .
\(\textbf{定义 2.1.4}\text{ (公约数)}\)
对于 \(a,b\in\Z\),若 \(d\in\Z,\,d\mid a,\,d\mid b\),则称 \(d\) 是 \(a,b\)的公约数 .
\(\textbf{定义 2.1.5}\text{ (最大公约数)}\)
对于不全为 \(0\) 的 \(a,b\in Z\),\(a,b\) 的公约数中的最大者称为最大公约数,记作 \(\gcd(a,b)\) .
\(\textbf{定理 2.1.3}\text{ (Bezout 定理)}\)
对于任意 \(a,b\in\Z\),存在 \(x,y\in\Z\) 使得 \(ax+by=\gcd(a,b)\) .
\(\textbf{定理 2.1.4}\text{ (算术基本定理)}\)
对于 \(a\in\Z\setminus\{0,\pm1\}\),\(a\) 一定可以唯一地表示为:
\[a=\pm1\cdot p_1^{\alpha_1}p_2^{\alpha_2}\cdots p_r^{\alpha_r} \]其中 \(p_1<p_2<\cdots<p_r\) 是不同的正素数 .
由于相伴关系是一个等价关系,因此可以将 \(\Z\) 中的全体元素按相伴关系划分成两两不相交的等价类,并在每个等价类中指定一个元素为代表,这样就得到 \(\Z\) 的一个代表集合 . 由于相伴元素具有相同的整除性质,在讨论仅和整除有关的性质时,可以只在某个代表集合中考虑(比如 \(\N\)).
整除理论体系的数论结构
令 \((M,\oplus,\odot)\) 是一个整环 .
为了方便,对于 \(\alpha,\beta\in M\),用 \(\alpha\beta\) 表示 \(\alpha\odot\beta\) .
\(\textbf{定义 2.2.1}\text{ (整除)}\)
设 \(\alpha,\beta\in M\) 且 \(\alpha\neq o\),若存在 \(\tau\in\Z\) 使得 \(\beta=\alpha\tau\),则称 \(\alpha\) 整除 \(\beta\),记作 \(\alpha\mid \beta\) . 同时称 \(\alpha\) 是 \(\beta\) 的约数,\(\beta\) 是 \(\alpha\) 的倍数 .
对于 \(0\neq \beta\in M\),称 \(\varepsilon,\varepsilon\beta\) 为 \(\beta\) 的平凡约数,其他因数称为非平凡约数 .
\(\textbf{定义 2.2.2}\text{ (不可约数)}\)
设 \(\xi\in\Z\setminus\{o,\varepsilon\}\),若 \(\xi\) 没有非平凡约数,则称 \(p\) 是 \(M\) 中的不可约数 .
\(\textbf{定义 2.2.3}\text{ (素数)}\)
若 \(\xi\in M\) 对于任意 \(\alpha,\beta\in M\) 或 \(\xi\mid \alpha\beta\) 有 \(\xi\mid \alpha\) 或 \(\xi\mid \beta\),则称 \(\xi\) 是 \(M\) 中的素数 .
\(\textbf{定理 2.2.1}\)
所有素数都是不可约数 .
证明
若素数 \(\xi=\alpha\beta\) 不是不可约数,其中 \(\alpha\beta\neq\varepsilon\),则由素数的定义有 \(\xi\mid\alpha\) 或 \(\xi\mid\beta\) .
不妨令 \(\xi\mid\alpha\),又 \(\alpha\mid\xi\),从而 \(\xi\sim\alpha\),进而 \(\beta=\varepsilon\),矛盾 .
从而命题得证 .
\(\textbf{定义 2.2.4}\text{ (公约数)}\)
对于 \(\alpha,\beta\in\Z\),若 \(\delta\in\Z,\,\delta\mid \alpha,\,\delta\mid \beta\),则称 \(\delta\) 是 \(\alpha,\beta\)的公约数 .
\(\textbf{定义 2.2.5}\text{ (最大公约数)}\)
对于不全为 \(o\) 的 \(a,b\in M\),若存在 \(\Delta\in M\) 满足 \(\Delta\mid\alpha,\Delta\mid\beta\) 且对于 \(\alpha,\beta\) 的任意公约数 \(\delta\) 有 \(\delta\mid\Delta\),则称 \(\Delta\) 是 \(\alpha,\beta\) 的最大公约数,记作 \(\gcd(\alpha,\beta)\) .
Remark 这样定义的 \(\gcd\) 不需要 \(M\) 上存在一个偏序 \(<\) . 另外,值得注意的是这个定义没有保证 \(\Delta\) 的存在性,但是,可以证明,如果 \(\Delta\) 存在,那么它必然在相伴意义下唯一 .
\(\textbf{定义 2.2.6}\text{ (可分解整环)}\)
如果对于任意 \(a\in M\setminus\{o,\varepsilon\}\),\(a\) 一定可以唯一地表示为 \(M\) 中有限个不可约数的乘积,则称 \(M\) 是可分解整环 .
\(\textbf{定理 2.2.2}\)
如果对任意 \(o\neq\alpha\in M\),\(\alpha\) 的互不相伴约数只有有限个,那么 \(M\) 是可分解整环 .
证明
设 \(d(\alpha)\) 表示 \(\alpha\) 的不相伴约数个数 . 显然当 \(\alpha\neq o,\varepsilon\) 时总有 \(d(\alpha)\ge 2\) .
用数学归纳法:
- 当 \(d(\alpha)=2\) 时,\(\alpha\) 为不可约数,结论成立 .
- 假设当 \(2\le d(\alpha)<k\) 时结论都成立,那么当 \(d(\alpha)=k\) 时,\(\alpha\) 一定不是不可约数,也即存在 \(\alpha=\beta\gamma\) 且 \(\beta,\gamma\neq\varepsilon\) . 显然 \(d(\alpha)>d(\beta),d(\gamma)\),由归纳假设知 \(\beta,\gamma\),都可表为不可约数的乘
积,因此 \(\alpha\) 也可表为不可约数的乘积,结论成立 .
命题获证 .
对于可分解整环,有如下命题:
- \(\textbf{命题 1}\) 对于不全为 \(o\) 的 \(\alpha,\beta\in M\),\(\Delta=\gcd(\alpha,\beta)\) 存在,且存在 \(x,y\in M\) 使得 \(ax\oplus by=\Delta\) .
- \(\textbf{命题 2}\) \(M\) 中的不可约数都是素数 .
- \(\textbf{命题 3}\) 设 \(M_0\) 是 \(M\) 的一个代表集合,则 \(\alpha\) 一定可以唯一的表为(不计次序):\[\alpha=\varepsilon\eta_1^{n_1}\eta_2^{n_2}\cdots\eta_r^{n_r} \]其中 \(\eta_i\in M_0\) 是两两不同的不可约数 .
\(\textbf{定义 2.2.7}\text{ (唯一分解整环)}\)
称命题 3 成立的可分解整环为唯一分解整环 .
\(\textbf{定理 2.2.3}\)
若 \(M\) 中命题 \(2\) 成立,\(\xi_1,\xi_2\in M\) 是不同的素数,\(\alpha\in M\) 且 \(\xi_1\mid\alpha,\xi_2\mid\alpha\),则 \(\xi_1\xi_2\mid\alpha\) .
\(\textbf{定理 2.2.4}\)
命题 \(1\)、命题 \(2\)、命题 \(3\) 两两等价 .
证明过繁,此处不展开叙述 .
\(\Z[\mathrm i]\) 中的整除理论
显然 \((\Z[\mathrm i],+,\times)\) 是一个整环,从而可以直接引入定义 \(2.2.1\sim 2.2.5\),此处不再重新描述 .
\(\textbf{定义 2.3.1}\text{ (范数)}\)
设 \(\alpha=a+b\mathrm i\in\mathbb Q[\mathrm i]\),称 \(N(\alpha)=a^2+b^2\) 为 \(\alpha\) 的范数 .
\(\textbf{定理 2.3.1}\)
对于 \(\alpha,\beta\in\mathbb Q[\mathrm i]\),则 \(N(\alpha\beta)=N(\alpha\beta)\),若 \(a\mid\beta\) 则 \(N(\alpha)\mid N(\beta)\) .
\(\textbf{定理 2.3.2}\)
对于 \(n\in\N\),\(\Z[\mathrm i]\) 中范数等于 \(n\) 的元素个数有限 .
\(\textbf{定理 2.3.3}\)
\(\Z[\mathrm i]\) 是可分解整环 .
(这可以由定理 2.3.2 和定理 2.2.2 直接导出)
\(\textbf{定理 2.3.4}\text{ (带余除法)}\)
对于 \(\alpha,\beta\in\Z[\mathrm i]\) 且 \(\alpha\neq 0\),存在 \(\eta,\gamma\in\Z[\mathrm i]\) 使得:
\[\beta=\eta\alpha+\gamma\qquad 0\le N(\gamma)<N(\alpha) \]
证明
考察 \(\frac{\beta}{\alpha}=a+b\mathrm i\),取 \(c,d\) 满足 \(|a-c|,|b-d|\le\frac 12\),令 \(\eta=c+d\mathrm i\),则:
从而
命题获证 .
\(\textbf{定理 2.3.5}\)
\(\Z[\mathrm i]\) 中命题 1 成立 .
证明
设 \(S=\{\alpha x+\beta y\mid x,y\in\Z[\mathrm i]\}\),其中范数最小的非零元素为 \(\delta\),则对于任意 \(\eta\mid\alpha,\eta\mid\beta\) 都有 \(\eta\mid\delta\),对于任意 \(u\in S\),由带余除法将 \(u\) 表示为:
由 \(N(\delta)\) 的最小性可推出 \(N(\gamma)=0\) 即 \(\gamma=0,\,\delta\mid\gamma\) . 从而 \(\delta=\gcd(\alpha,\beta)\) . 进而可以证得原命题 .
\(\textbf{定理 2.3.6}\)
\(\Z[\mathrm i]\) 是唯一分解整环 .
(这可以由定理 2.3.5 和定理 2.2.4 直接导出)
\(\textbf{定理 2.3.7}\)
对于 \(n\in\N\),\(\Z[\mathrm i]\) 中范数等于 \(n\) 的个数:
\[E(n)=4\sum_{d\mid n}\chi(d) \]其中 \(\chi(n)=(-1)^{\frac{(d-1)}2}[2\nmid d]\) .
关于这个定理的证明可以参考参考文献 [2] [3](注意这意味可能需要导出对下一个定理的其他证明).
\(\textbf{定理 2.3.8}\)
\(\xi\in\Z[\mathrm i]\) 是素数,当且仅当 \(\xi\) 满足下列条件之一:
- \(N(\xi)=2\) .
- \(N(\xi)=p\),其中 \(p\equiv1\pmod 4\) 是正有理素数 .
- \(\xi\sim p\),其中 \(p\equiv3\pmod 4\) 是正有理素数 .
证明
充分性:前两个显然,对于 3,设 \(\xi=\alpha\beta\) 其中 \(\alpha,\beta\neq\varepsilon\) 则 \(p^2=N(\xi)=N(\alpha)N(\beta)\),那么 \(N(\alpha)=N(\beta)=p\),这与定理 2.3.7 矛盾 .
必要性:由算术基本定理可知存在 \(\{q\}\) 满足:
其中 \(q_i\) 是正有理素数 . 由 \(\xi\) 是素数可得存在 \(q_i\) 使得 \(\xi\mid q_i\),进而 \(N(\xi)\mid N(q_i)=q_i^2\),即 \(N(\xi)=q_i\) 或 \(N(\xi)=q_i^2\) .
若 \(N(\xi)=q_i\) 则必然前两个有一个成立,否则可以和 \(\xi\mid q_i\) 共同推出 \(\xi\sim q_i\) . 根据定理 2.3.7 可以得出 \(q_i\equiv 3\pmod 4\) .
命题得证 .
\(\Z[\mathrm i]\) 上的基本数论算法
Euclid 算法
问题:计算不全为零的 \(\alpha,\beta\in\Z[\mathrm i]\) 的最大公约数 .
\(\textbf{引理 3.1.1}\)
对于 \(\alpha,\beta\in\Z[\mathrm i]\) 且 \(\alpha\neq 0\),有 \(\gcd(\alpha,\beta)=\gcd(\beta\bmod\alpha,\alpha)\) .
证明
写成带余除法形式:
令 \(\Delta=\gcd(\alpha,\beta)\),则由定义和带余除法的式子可知 \(\Delta\mid\gamma\) .
另一方面对于任意 \(\delta\mid\alpha,\delta\mid\gamma\),根据带余除法的式子可以得到 \(\delta\mid\beta\),所以 \(\delta\mid\Delta\) .
从而根据定义可以得到 \(\gcd(\gamma,\alpha)=\Delta=\gcd(\alpha,\beta)\) .
命题得证 .
按上式递归处理,每次递归较小的范数至少减少一般,所以 \(\Z[\mathrm i]\) 上的 Euclid 算法的时间复杂度为 \(O(\log(N(\alpha)+N(\beta)))\) .
标准分解
问题:对于非零数 \(\alpha\in\Z[\mathrm i]\),将其表示为若干高斯素数的乘积 .
试除法:很容易得到时间复杂度为 \(\Theta(\sqrt{N(\alpha)})\) .
改进:令 \(\alpha=a+b\mathrm i\),记 \(d=\gcd(a,b)\),显然 \(d\mid\alpha\),记 \(\alpha_1=\tfrac{\alpha}d=a_1+b_1\mathrm i\) .
不难导出 \(\alpha_1\) 没有非平凡有理整数因子 .
考虑分解 \(\alpha_1\),这等价于寻找一个 \(\alpha_1\) 的素因子 \(\beta\) .
记 \(N(\alpha_1)\) 的标准分解为(\(\{p\}\) 是升序序列):
讨论:
-
当 \(p_1=2\) 时,取 \(\beta=1+\mathrm i\) 即可 .
-
当 \(p_1\equiv 1\pmod 4\) 时,记 \(\gamma_1,\gamma_2\) 时满足范数等于 \(p_1\) 的两个互不相伴的高斯整数,不难得到 \(\gamma_1,\gamma_2\) 中至少有一个满足条件 .
-
当 \(p_1\equiv 3\pmod 4\) 时,令 \(\alpha_2=\tfrac{\alpha_1}{\beta}\),则 \(p_1\mid N(\alpha_1)=N(\beta)N(\alpha_2)\) .
又 \(p_1\) 为有理素数可知 \(p_1\mid N(\beta)\) 或 \(p_1\mid N(\alpha_2)\) . 根据定理 2.3.8,这表明 \(\beta=p_1\) 或 \(\alpha_2=p_1\),这与 \(\alpha_1\) 没有非平凡有理整数因子矛盾 .
从而不断进行过程可以把问题转为在 \(\Z[\mathrm i]\) 中分解有理素数 \(p\equiv 1\pmod 4\) .
\(\textbf{引理 3.2.1}\)
对于有理素数 \(p\equiv 1\pmod 4\),在 \([0,p)\) 间的有理整数 \(z^2\equiv-1\pmod p\),记 \(\xi=\gcd(p,z+\mathrm i)\),则 \(\xi\overline\xi=p\) .
证明
只需要证明 \(N(\xi)=p\) .
因为 \(\xi\mid p\) 且 \(\xi\mid z+\mathrm i\),所以:
由题设知存在 \(x,y\in\Z\) 使得 \(p=x^2+y^2\)(费马平方和定理,证明可见参考文献 [2] [4]),由此 \(\gcd(x,y)=\gcd(x,p)=1\) 以及:
分别考虑 \(p\mid x-yz\) 和 \(p\mid x+yz\) 的情况,做法类似,此处以 \(p\mid x-yz\) 为例 . 设 \(x=yz+kp\) 其中 \(k\in\Z\),则:
又 \((x+y\mathrm i)\mid p\) 且 \(\gcd(x+y\mathrm i,y)=1\),从而 \((x+\mathrm yi)\mid(z+\mathrm i)\),进而 \((x+y\mathrm i)\mid\xi\),从而 \(N(\xi)=p\) .
命题得证 .
所以每次分解 \(p\) 只需要找出 \(p\) 的一个二次非剩余 \(c\)(随的话期望随两次),取 \(z=c^{\frac{p-1}4}\pmod p\) 即可,然后只需要算出 \(\xi\) 就可以完成对 \(p\) 的分解,这部分使用 Euclid 算法即可 .
显然这部分的总时间复杂度为 \(O(\log^2N(\alpha))\)
从而算法的时间复杂度为 \(\Theta(\operatorname{factor}(N(\alpha)))\),其中 \(\operatorname{factor}(n)\) 是 \(\Z\) 上的素因数分解复杂度 .
\(\Z[\mathrm i]\) 上数论函数的相关问题
基本定义
为了方便,记:
显然 \(D\) 为 \(\Z[\mathrm i]\) 的一个代表集 .
再记:
\(\textbf{定义 4.1.1}\text{ (数论函数)}\)
称函数 \(f:D^+\to\mathbb C\) 为 \(\Z[\mathrm i]\) 上的数论函数 .
\(\textbf{定义 4.1.2}\text{ (积性函数)}\)
对于 \(\Z[\mathrm i]\) 上的数论函数 \(f\),如果对于任意 \(\alpha,\beta\in D^+\) 且 \(\gcd(\alpha,\beta)=1\) 都有 \(f(\alpha\beta)=f(\alpha)f(\beta)\),则称 \(f\) 为 \(\Z[\mathrm i]\) 上的积性函数 .
\(\textbf{定义 4.1.3}\text{ (完全积性函数)}\)
对于 \(\Z[\mathrm i]\) 上的数论函数 \(f\),如果对于任意 \(\alpha,\beta\in D^+\) 都有 \(f(\alpha\beta)=f(\alpha)f(\beta)\),则称 \(f\) 为 \(\Z[\mathrm i]\) 上的完全积性函数 .
\(\textbf{定义 4.1.4}\text{ (Dirichlet 卷积)}\)
对于 \(\Z[\mathrm i]\) 上的数论函数 \(f,g\),定义其 Dirichlet 卷积:
\[(f*g)(\alpha)=\sum_{\delta\mid\alpha}f(\delta)g\left(\dfrac{\alpha}{\delta}\right) \]
\(\textbf{定理 4.1.1}\)
对于任意 \(\alpha\in D^+\),对于 \(\beta\in S(n)\),\(\alpha\beta\) 遍历所有 \(S(N(\alpha)n)\) 中 \(\alpha\) 的倍数 .
常见数论函数
对于 \(\alpha,\beta\in\Z[\mathrm i]\),称 \(\gcd(\alpha,\beta)\) 为 \(\alpha,\beta\) 的最大公约数在 \(D\) 中的相伴数 .
\(\textbf{定义 4.2.1}\text{ (同余)}\)
设 \(\alpha,\beta,\gamma\in\Z[\mathrm i]\) 且 \(\gamma\neq 0\),\(\alpha\) 与 \(\beta\) 同余当且仅当 \(\gamma\mid(\alpha-\beta)\),记作 \(\alpha\equiv\beta\pmod{\gamma}\) .
\(\textbf{定义 4.2.2}\text{ (剩余类)}\)
设 \(0\neq\gamma\in\Z[\mathrm i]\),将 \(\Z[\mathrm i]\) 按照模 \(\gamma\) 是否同余分为两两不相交的等价类,这些等价类称作模 \(\gamma\) 的剩余类,其个数记作 \(R(\gamma)\) .
\(\textbf{定义 4.2.3}\text{ (完全剩余系)}\)
设 \(0\neq\gamma\in\Z[\mathrm i]\),对 \(\gamma\) 的每一个剩余类取一个元素作为代表,得到的 \(R(\gamma)\) 个元素称作模 \(\gamma\) 的一个完全剩余系 .
\(\textbf{定理 4.2.1}\)
对于范数不为 \(0\) 的 \(\gamma=a+b\mathrm i\in\Z[\mathrm i]\),记录 \(g=\gcd(a,b)\),则:
\[x_{m,n}=m+n\mathrm i\qquad0\le m<\frac{N(\gamma)}g,\,0\le n\le g \]是模 \(\gamma\) 的一个完全剩余系 .
证明
先证明 \(x_{m,n}\) 两两不同余,假设 \(x_{m,n}\equiv x_{m',n'}\pmod{\gamma}\),则设
由 \(g\mid\gamma\) 可知 \(g\mid(m-m')+(n-n')\mathrm i\),进而 \(g\mid n-n'\),由 \(n\) 的范围知 \(n=n'\) .
再设 \(\eta=c-d\mathrm i\),则 \(\eta\gamma=(ac+bd)+(bc-ad)\mathrm i\),因此:
由整数的性质有 \(\frac ag\mid c\),因此 \(\frac{cg}a=\frac{dg}b=k\in\Z\),于是
即 \(\frac{N(\gamma)}g\mid(m-m')\),由 \(m\) 的范围知 \(m=m'\) . 因此可得 \(x_{m,n}=x_{m',n'}\) .
再证明对于任意 \(\alpha=x+y\mathrm i\in\Z[\mathrm i]\),都存在 \(x_{m,n}\) 与 \(\alpha\) 同余 .
由带余除法:
其中 \((x_0,y_0)\) 是 \(ay_0+bx_0=g\) 的一组整数解 . 于是
其中 \(\theta=(ax_0-by_0)+g\mathrm i\) .
又
于是 \(\alpha\equiv m+n\mathrm i\pmod\gamma\) .
命题得证 .
直接推论:\(R(\alpha)=N(\alpha)\) .
\(\textbf{定义 4.2.4}\text{ (既约剩余系)}\)
设 \(0\neq\gamma\in\Z[\mathrm i]\),模 \(\gamma\) 的一个完全剩余系中满足所有 \(\gcd(\alpha,\gamma)=1\) 的元素 \(\alpha\) 组成模 \(\gamma\) 的一个既约剩余系 .
下面定义一些常用数论函数:
- 单位函数 \(\varepsilon(\alpha)=[\alpha=1]\) .
- 幂函数 \(\mathrm{Id}_k(\alpha)=\alpha^k\),当 \(k=1\) 时也记作 \(\mathrm{Id}(\alpha)\) .
- Mobius 函数:令 \(\alpha\) 的标准分解 \(\alpha=\prod_{i=1}^r\xi_i^{k_i}\),则:\[\mu(\alpha)=\begin{cases}0&\exists k_i>1\\(-1)^r&\text{otherwise.}\end{cases} \]
- Euler 函数 \(\varphi(\gamma)\) 表示模 \(\gamma\) 的既约剩余系大小 .
\(\textbf{定理 4.2.2}\)
对于 \(\alpha\in D^+\),
\[\sum_{\delta\mid\alpha}\mu(\delta)=\varepsilon(\alpha) \]
\(\textbf{定理 4.2.3}\)
对于 \(\alpha\in D^+\),
\[\sum_{\delta\mid\alpha}\varphi(\delta)=N(\alpha) \]
证明
考虑 \(\alpha\) 的一个完全剩余系中的每个数 \(\beta\),取 \(\Delta=\gcd(\alpha,\beta)\),则 \(\gcd(\frac{\alpha}{\Delta},\frac{\beta}{\Delta})=1\) .
考虑 \(\alpha',\beta'\) 分别为 \(\frac{\alpha}{\Delta},\frac{\beta}{\Delta}\) 在 \(D\) 中的相伴数,则所有这样的 \(\beta'\) 组成了 \(\alpha'\) 的一个既约剩余系,因此 \(\alpha\) 所有因数既约剩余系的大小之和与 \(\alpha\) 的完全剩余系大小相等 .
命题获证 .
\(\textbf{定理 4.2.4}\)
对于 \(\alpha\in D^+\) 且其标准分解 \(\alpha=\prod_{i=1}^r\xi_i^{k_i}\),有
\[\varphi(\alpha)=\prod_{i=1}^rN(\xi_i^{k_i})\left(1-\dfrac1{N(\xi_i)}\right) \]
证明
由定理 9.3 得 \(\varphi*1=N\),从而 \(\varphi\) 为积性函数,对于素数幂 \(\eta^c\) 处:
命题获证 .
线性筛
问题:
- 求范数不超过 \(n\) 的所有高斯素数 .
- 求一个积性函数在范数不超过 \(n\) 的所有高斯整数处的值 .
仿照 \(\Z\) 中的算法设计算法流程:按范数从小到大枚举高斯整数 \(\alpha\),如果 \(\alpha\) 未被更新,则记录 \(\alpha\) 为高斯素数,依次枚举 \(\alpha\) 及以前的高斯素数 \(\xi\),更新 \(\alpha\cdot\xi\),当 \(\xi\mid\alpha\) 时,停止枚举 .
每个高斯非素数 \(\alpha\) 只会被作为 \(\frac{\alpha}{\operatorname{lpf}(\alpha)}\cdot\operatorname{lpf}(\alpha)\) 更新一次,其中 \(\operatorname{lpf}(\alpha)\) 为 \(\alpha\) 范数最小的素因子 . 从而时间复杂度为 \(\Theta(n)\) .
杜教筛
问题:对于数论函数 \(f\),存在容易计算块筛的函数 \(g,f*g\),计算 \(f\) 的块筛 .
对于函数 \(f\),设:
则
也就是
根据类似的分析可以得到其时间复杂度为 \(\Theta(n^{2/3})\) .
min25 筛
问题:对于数论函数 \(f\),\(f\) 在素数处可以快速求前缀和,计算 \(f\) 的前缀和 .
对于高斯整数的定序:按范数为第一关键字,实部为第二关键字排序 .
令:
则
令完全积性函数 \(f'(\xi)=f(\xi)\),\(\eta_i\) 是第 \(i\) 个素数(只需要考虑范数不超过 \(\sqrt n\) 的),且
则
递归计算即可 . 这里范数相同的高斯素数处要进行特殊处理 .
范数不超过 \(n\) 的高斯素数只有 \(O(\pi(n))\) 个,所以只要 \(h'_0\) 可以快速求出则可以在和 \(\Z\) 上的 min25 筛同样的时间复杂度内计算 \(f\) 的前缀和 . 也就是 \(n\) 较小时 \(O(\frac{n^{3/4}}{\log n})\) .
一些例子
Bezout 定理
GCD
给两个非零数 \(x,y\in\Z[\mathbb i]\),输出形如 \(ax+by\)(其中 \(a,b\in\Z[\mathrm i]\))的非零复数中模长最小的那个 .
\(x,y\) 实部虚部的绝对值均不超过 \(10^9\) .
根据 Bezout 定理,输出 \(\gcd(x,y)\) 即可 .
时间复杂度为 \(O(\log(N(x)+N(y)))\) .
Mobius 反演
于神之怒
给定正整数 \(k\),每次询问给定正整数 \(n,m\),求:
\[\sum_{\alpha\in S(n)}\sum_{\beta\in S(m)}\gcd(\alpha,\beta)^k \]不超过 \(2000\) 次询问,\(n,m,k\le5\times10^5\),对素数取模 .
其中 \(C(n)\) 表示 \(D^+\) 中范数不超过 \(n\) 的元素个数 .
那么可以 \(\Theta((n+m)\log k+q(\sqrt n+\sqrt m))\) 算 .
杜教筛
Sum
每次询问给定正整数 \(n\),求:
\[\sum_{\alpha\in S(n)}\mu(\alpha)\qquad \sum_{\alpha\in S(n)}\varphi(\alpha) \]不超过 \(10\) 次询问,\(n\le 2^{32}-1\) .
杜教筛构造是熟知的:\(\mu*1=\varepsilon\),\(\varphi*1=N\) .
计算 \(1\) 和 \(N\) 的前缀和时,对于 \(x^2+y^2\le n\),用 \(\Theta(\sqrt n)\) 的时间枚举 \(x\) 即可,总时间复杂度为 \(\Theta(n^{2/3})\) .
JZPTAB
给定正整数 \(n\),求:
\[\sum_{\alpha\in S(n)}\sum_{\beta\in S(n)}\dfrac{\alpha\beta}{\gcd(\alpha,\beta)} \]\(n\le 10^{10}\) .
一个综合应用 . 仿照于神之怒的推法最终得到的式子是:
对于 \(f=\mathrm{Id}_2\cdot(\mathrm Id_{-1}*\mu)\),构造 \(f*\mathrm{Id}_2=\mathrm{Id}\) 即可 . 时间复杂度为 \(\Theta(n^{2/3})\) .
min25 筛
整点计数
令 \(f(x)\) 表示以原点为圆心,\(x\) 为半径的圆上整点的个数 . 给定 \(n,k,p\),计算:
\[\sum_{i=1}^nf(i)^k \]答案对 \(p\) 取模 .
\(1\le n,k\le 10^{11}\) .
根据定理 2.3.7 可以知道的是:
因为 \(\chi\) 是完全积性函数,所以 \(\displaystyle\sum_{d\mid n^2}\chi(d)\) 是积性函数,那么也就意味着 \(\frac{f(n)}4\) 是积性函数 .
使用 min25 筛计算即可,需要对素因子模 4 的值进行讨论 . 时间复杂度为 \(\Theta(\frac{n^{3/4}}{\log n})\) .
另一方面,根据定理 2.3.8 可以转为高斯素数处的积性函数求和,这是 min25 筛能解决的 .
Reference
[1] 李佳衡《算法竞赛中一些数论问题的推广与高斯整数初探》
[2] 徐翊轩《〈整点计数〉命题报告以及对高斯整数的若干研究》
[3] 二次域 - OI Wiki
以下是博客签名,正文无关
本文来自博客园,作者:Jijidawang,转载请注明原文链接:https://www.cnblogs.com/CDOI-24374/p/17738523.html
版权声明:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议(CC BY-NC-SA 4.0)进行许可。看完如果觉得有用请点个赞吧 QwQ