Nonlinear Algebra
看上去直接抄的 Alex_wei 的笔记,
实际上确实是这样的实际上加了一点自己的理解(真有吗),重新安排了一下顺序。并非 OI 向,里面没有任何代码,看上去很数学!
以下为前置知识。
\((a,b)=(a,a-b)=(a-b,b)\),证明考虑将 \(a\) 和 \(b\) 写成 \(d\) 的形式。
\((a,b)=(b,a\bmod b)\),证明同理。
\(x\mid\gcd(a,p)\rightarrow x\mid(a\bmod p)\rightarrow a\equiv b\pmod p\Longleftrightarrow\frac{a}{x}\equiv\frac{b}{x}\pmod{\frac{p}{x}}\)。可以在模 \(x\) 意义下对其做出证明。
因式定理:\(f(x)\) 是一个多项式,若 \(f(x_0)=0\),则 \(f(x)\) 含有 \((x-x_0)\) 这个因式。
前置知识结束。
记 \(n\) 所含质因数 \(p\) 的次数为 \(v_p(n)\),记 \(n\) 在 \(p\) 进制下各位数字和为 \(s_p(n)\)。记质数集合为 \(\mathbb{P}\)。
对于给定的 \(a,b\),使得 \(a\mid bx\) 的最小 \(x\) 为 \(\frac{a}{(a,b)}\),考虑对质因数进行单独分析。
同余运算中不对等价类内部做区分,因此各种运算性质依然成立。在缩系上除法也是有很好定义的。
考虑剩余系实际上就是一个环,这个环大小为 \(p\),走 \(k\) 步代表走到 \(p+k\) 所在的剩余类。考察这个环的一些性质。
当步长固定为 \(k\) 时,会形成 \(d=(n,k)\) 个子环,每个子环的大小为 \(\frac{n}{d}\)。
在这里给出严格证明。
将 \(0\sim n-1\) 分成若干等价类,对于任意一个等价类中的两个数 \(x,y\),\(x\) 可以通过走若干次抵达 \(y\)。同时对于不同同余类中的两个点不可以互相抵达。
考察任意一个数 \(0\le a\le n-1\),其所能抵达的所有点是 \(a+xk\),我们希望判断一下这些点的数量即求最小的 \(x\) 使得 \(a+xk\equiv a\),根据上文 \(x=\frac{n}{(n,k)}\)。因此 \(a\) 只能抵达这 \(\frac{n}{(n,k)}\) 个点,同时这 \(\frac{n}{(n,k)}\) 个点也只能互相抵达,因此它们在同一个等价类中。
同时按照如此划分,不同等价类的点不会互相抵达,考虑 \(b\) 和 \(a\) 不在同一等价类中,根据上文所述 \(a\) 无法抵达 \(b\),考虑 \(b\) 可以抵达 \(a\),这等价于同余方程 \(b+x_0k\equiv a\) 有解,\(a+x_1k\equiv b\) 无解,直接令 \(x_1=n-x_0\) 可以得到 \(a+nk-x_0k\equiv a-x_0k\equiv b\)。因此矛盾。
我们目前只是得到了一个很弱的结论,不过根据这个很弱的结论也可以干很多事情了。
考察 \(ax+by=c\),显然有解的必要条件是 \((a,b)\mid c\),不妨继续考察 \(a'=\frac{a}{(a,b)}\),\(b'=\frac{b}{(a,b)}\),\(c'=\frac{c}{(a,b)}\),\(a'x+b'y=c'\)。此时 \((a',b')=1\),实际上 \(a'x+b'y\) 可以取遍任何数,只需考虑 \(a'x\) 可以取遍 \(b'\) 的完全剩余系,即从 \(0\) 开始在长为 \(b\) 的环上以 \(a'\) 为步长跳,由于 \(a\perp b\),因此能取遍完全剩余系。
因此 \((a,b)\mid c\) 这个条件是充要的,这就是 Bezout 定理。不妨考察判定 \(ax\equiv 1\) 解存在性,这等价于判定 \(ax+by=1\),因此有解当且仅当 \(a\perp b\)。
\(a\) 在模 \(b\) 意义下乘法逆元存在当且仅当 \(a\perp b\)。
重新看上文的环,我们还有结论:
任取环上连续 \(d\) 个点,一定属于不同等价类。
反证。即判断 \(a+xk\equiv a+y(y<d)\) 是否存在解。首先在 \(n=1\) 时讨论此问题无意义。在 \(n>1\) 时,方程等价于 \(xk\equiv y\),写成 \(kx+bn=y\) 的形式,根据 Bezout 定理,有解当且仅当 \((n,k)\mid y\),即 \(d\mid y\),由于 \(y<d\),因此显然无解。
重新看 Bezout 定理。我们指出二元线性不定方程 \(ax+by=c\) 有解的条件,考虑进一步求出解。对于任意该种方程,总能变成 \(ax+by=(a,b)\) 的形式。不妨令 \(c\equiv a\pmod b\),考虑方程 \(bx+cy=(a,b)\),该方程依然有解,设得到解 \((x',y')\),令 \(a=b\lfloor\frac{a}{b}\rfloor+c\)。有:\(bx'+ay'-b\lfloor\frac{a}{b}\rfloor y'=(a,b)\)。不难得到 \((x=y',y=x'-\lfloor\frac{a}{b}\rfloor y')\)。当 \(a=1,b=0\) 时不难得到解 \((1,0)\)。
这样我们就可以求出二元线性不定方程的一组解了。考虑通解的形式,显然 \((x=x_0+k\frac{b}{d},y=y_0-k\frac{a}{d})\) 是合法的解。考虑证明这就是所有解的形式.
首先对于一个固定的 \(x\),必然有一个固定的 \(y\),因此我们只需判断是否所有的合法 \(x\) 都被取到即可。设存在 \(x'\) 是大于 \(x_0\) 中最小的没被取到的一个 \(x\)(不妨令 \(x_0\) 取的充分小),令前一个被取到的 \(x\) 为 \(x_1\),与之对应的 \(y\) 为 \(y_1\),设 \(x=x_1+z\),则有形式 \(a(x_1+z)+b(y_1-z')=c\),即 \(az=bz'\),得到 \(z'=\frac{az}{b}\),此时 \(z\) 最小取到 \(\frac{b}{d}\),矛盾,因此所有解都会被取到。
关于特解,存在数值范围 \(|x_0|\le |\frac{b}{2(a,b)}|\),\(|y_0|\le |\frac{a}{2(a,b)}|\)。证明见参考资料:chenxia25 的证明。
考察模 \(p\in\mathbb{P}\) 意义下的 \(n\) 次整系数多项式 \(f(x)\equiv 0\),有 Lagrange 定理:
若 \(p\nmid a_n\),则至多有 \(n\) 个不同解。
归纳证明,在 \(n=0\) 处显然成立。在 \(n>1\) 处反证,设存在不同解 \(x_{0\sim n}\)。则根据因式定理,\(f(x)\equiv (x-x_0)g(x)\),其中 \(g(x)\) 的次数不超过 \(n-1\) 次。此时能得到 \(n\) 个同余式 \((x_i-x_0)g(x_i)\equiv 0,i=1,\cdots,n\),由于 \(x_i\neq x_0\),因此 \(x_i\) 都是 \(g(x)\) 的解,矛盾。
上述证明建立在 \(p\in\mathbb{P}\) 的前提下,原因是若 \(ab\equiv 0\),则 \(p\mid a\) 和 \(p\mid b\) 至少一者成立。同时注意上文解的数量并不一定为 \(n\)。
根据 Lagrange 定理,我们有 Wilson 定理:
\((p-1)!\equiv -1\Leftrightarrow p\in\mathbb{P}\)。
对于 \(p\in\mathbb{P}\) 且 \(p>2\) 的情况,Lagrange 定理保证了方程 \(x^2\equiv 1\) 只有 \(\pm 1\) 两个解。因此 \(2\sim p-2\) 互为配对逆元。因此 \((p-1)!\equiv -1\)。
对于 \(p\notin\mathbb{P}\) 的情况。若 \(p=q^2\) 为 \(>4\) 的完全平方数,则 \(q\times(2q)\equiv 0\)。为 \(>4\) 的非完全平方数时,\(q\times\frac{p}{q}\equiv 0\)。对于 \(p=4\) 的情况直接验证即可。
我们对 Wilson 定理进行扩展。令 \((p^k!)_p\) 代表 \(1\sim p^k-1\) 中所有和 \(p\) 互质的数的乘积。依然有 \(p\in\mathbb{P}\)。
对于 \(p>2\) 的情况,依然考虑方程 \(x^2\equiv 1\),此时 Lagrange 定理没有对方程解的数量做出任何保证,不过我们还是可以推出该方程存在偶数个解,因为逆元必须两两配对,而总的可以进行配对的数的数量为 \(p^{k-1}(p-1)\),这是一个偶数,因此逆元为自己的数也必须有偶数个。方程因式分解得到 \((x+1)(x-1)\equiv 0\),显然 \(p\mid x+1\) 和 \(p\mid x-1\) 不会同时成立,因此必然有 \(x+1\equiv 0\) 或 \(x-1\equiv 0\),后者只能取平凡解 \(x=1\),前者取另一个平凡解 \(-1\),不难发现没有其它解。所以 \((p^k!)_p\equiv -1\)。
对于 \(p=2\) 的情况,考虑方程 \(x^2\equiv 1\),依然存在平凡解 \(x=\pm 1\)。对于非平凡解依然考虑其因式分解形式 \((x+1)(x-1)\equiv 0\),此时 \(x+1\) 和 \(x-1\) 若不同时为 \(2\) 的倍数,则类似 \(p>2\) 的分析得到只有两个平凡解。否则必然不可能同时为 \(4\) 的倍数,且不为 \(4\) 的倍数那个满足 \(v_2(x\pm 1)=1\)。除掉不为 \(4\) 的倍数那个,此时模数相应除以 \(2\)(考察展开形式),得到 \(x\pm 1\equiv0\pmod {2^{k-1}}\)。因此存在四个可重解:\(\pm1,2^{k-1}\pm 1\)。
四个解在 \(k>2\) 的时候不重,满足乘积为 \(1\)。\(k\le 2\) 的情况可以暴力验证。因此得到 Wilson 定理的扩展形式:
对于 \(p\in\mathbb{P}\),\((p^k!)_p\equiv -1\Leftrightarrow p>2\operatorname{or}k\le 2\)。
我们进一步将其推广,记 \((m!)_m\) 为 \(m\) 的缩系乘积。则当 \(m=4,p^k,2p^k\)(\(p\in\mathbb{P}\) 且 \(p>2\))时 \((m!)_m\equiv -1\),否则 \((m!)_m\equiv 1\)。证明详见 参考资料:Wilson 定理的 Gauss 推广。
考虑 \(v_p(n!)\),当 \(p\in\mathbb{P}\) 时如何求该值。Legendre 在 1808 年提出:\(v_p(n!)=\sum\limits_{i=1}^{\lfloor\log_p n\rfloor}\lfloor\frac{n}{p^i}\rfloor\)。具体证明考虑每次取出 \(1\sim n\) 中 \(p\) 的倍数,将其除去因子 \(p\),此时会除去 \(\lfloor\frac{n}{p}\rfloor\) 个数,最后会剩下 \(1\sim\lfloor\frac{n}{p}\rfloor\),不断重复此过程。
考虑拆贡献,记 \(c=\lfloor\log_p n\rfloor\),设 \(n\) 在 \(p\) 进制下为 \(\overline{a_ca_{c-1}\dots a_0}\),则上面的算式等价于 \(\sum\limits_{i=1}^{c}\sum\limits_{j=i}^c a_j\times p^{j-i}\),简单拆贡献得到 \(v_p(n!)=\frac{n-s_p(n)}{p-1}\)。特别地,\(v_2(n!)=n-\operatorname{popcnt}(n)\)。
不妨进一步考虑 \(v_p(\binom{n}{m})\),直接写出公式:
可以得到 \(v_p(\binom{n}{m})=\frac{s_p(m)+s_p(n-m)-s_p(n)}{p-1}\)。这等价于 \(p\) 进制下 \(m\) 和 \(n-m\) 相加的进位次数,称为 Kummer 定理。当 \(p=2\) 时,可以快速判断组合数奇偶性。
我们已经可以利用扩展 Euclid 求出乘法逆元,考虑对乘法逆元做进一步刻画。先考虑 \(p\in\mathbb{P}\) 的简单情况。此时 \(\prod\limits_{i=1}^{p-1}i\equiv\prod\limits_{i=1}^{p-1}ai\equiv a^{p-1}\prod\limits_{i=1}^{p-1}i\Longrightarrow (a^{p-1}-1)\prod\limits_{i=1}^{p-1}i\equiv 0\),因此 \(a_{p-1}\equiv 1\)。
上述保证 \(p\in\mathbb{P}\) 主要是为了确保若干个 \(\not\equiv 0\) 个数乘起来必然不会 \(\equiv 0\)。实际上这个性质也可以由一个数的缩系来保持,接下来考虑不对 \(p\) 做出限制。设 \(K_p\) 为 \(p\) 的缩系,相应得到 \(\prod\limits_{i\in K_p}i\equiv \prod\limits_{i\in K_p}ai\equiv a^{\varphi(p)}\prod\limits_{i\in K_p}i\Longrightarrow a^{\varphi(p)}\equiv 1\)。
这就是 Euler 定理,对于 \(p\in\mathbb{P}\) 的特殊情况为 Fermat 小定理,这两个定理对逆元的形式做出了一定的刻画。这同时说明当 \(a\perp p\) 的时候,\(a^b\equiv a^{b\bmod{\varphi(p)}}\),扩展 Euler 定理给出了当 \(a\not\perp p\) 的时候同样具有类似形式:\(a^b\equiv a^{b\bmod\varphi(p)+\varphi(p)}\),证明可以自行搜索资料。
考虑线性同余方程组 \(x\equiv a_i\pmod {m_i}\)。我们考虑不断合并两个同余方程 \(x\equiv a_1\pmod {m_1}\) 和 \(x\equiv a_2\pmod {m_2}\),将其写成展开形式 \(x=p_1m_1+a_1\) 和 \(x=p2m_2+a_2\),有 \(p_1m_1+a_1=p_2m_2+a_2\),得到 \(p_1m_1-p_2m_2=a_2-a_1\),可以直接用扩展 Euclid 解出合法的 \(p_1p_2\),无解即为 \((m_1,m_2)\nmid(a_2-a_1)\),由此不难给出对于两个方程的特解 \(x^*\),考虑通解形式,我们有 \(x=x^*+[m_1,m_2]\)。必要性显然,考虑充分性。
实际上很好理解,仿照扩展 Euclid 的证明方式,设一个大于特解的最小特殊解为 \(x'\)(特解充分小),其前面一个平凡通解为 \(x_0\),此时有 \(x_0\equiv x'\pmod {m_1}\) 和 \(x_0\equiv x'\pmod {m_2}\),放到一个长为 \([m_1,m_2]\) 的环上考虑这件事情,每个位置对其额外做二元编号 \((i\bmod m_1,i\bmod m_2)\),则若存在两个不同的 \(i\) 二元编号相同,则必然存在一个小于较大 \(i\) 的位置 \(pos\),满足 \(m_1\mid pos\),\(m_2\mid pos\),与 \([m_1,m_2]\) 的最小性矛盾。
接下来的问题会着重讨论组合数在同余代数上的问题。考虑 \(\binom{n}{m}\) 如何求出在模 \(p\) 意义下的值。依然先考虑 \(p\in\mathbb{P}\) 的简单情况。首先给出引理。
对于 \(p\in\mathbb{P}\),有 \((x+y)^p\equiv x^p+y^p\)。
证明考虑对前式二项式定理直接展开 \(\sum\limits_{i=0}^p\binom{p}{i}x^py^{p-i}\),当 \(0<i<p\) 时有 \(\binom{p}{i}=\frac{p^{\underline{i}}}{i!}\),此时不难发现必然包含因数 \(p\)。同时有推论 \((1+x)^p=1+x^p\)。
对于简单情况的组合数取模有 Lucas 定理。
\(\binom{n}{m}\equiv\binom{\lfloor\frac{n}{p}\rfloor}{\lfloor\frac{m}{p}\rfloor}\binom{n\bmod p}{m\bmod p}\)。
有 \(\binom{n}{m}=[x^m](1+x)^n\),令 \(n=dp+r\),则 \((1+x)^n=(1+x^p)^d(1+x)^r\),考虑 \([x^m](1+x)^n\) 如何得到,必然为 \([x^{p\lfloor\frac{m}{p}\rfloor}](1+x^p)^{d}[m\bmod p](1+x)^{r}\)。可以得到 Lucas 定理。
继续研究对 \(p\) 无限制的情况。首先根据 CRT,设 \(p=\prod q_i^{k_i}\),可以得到若干个同余方程,最后进行合并即可。因此现在就是要解决组合数模质数幂的问题。
设需要求 \(\binom{n}{m}\bmod q^k\),可以直接将组合数展开后所有因子 \(q\) 拿出来:
后面的部分可以直接利用 Kummer 定理计算。考虑前面的部分,只需考虑形如 \(\frac{n!}{q^{v_p(n!)}}\bmod q^k\) 的问题。对于 \(1\sim n\) 中 \(q\) 的倍数和非 \(q\) 的倍数分类讨论,设 \(d=\lfloor\frac{n}{q}\rfloor\),\(d_k=\lfloor\frac{n}{q^k}\rfloor\),\(r=n\bmod q^k\)。
对于 \(q\) 的倍数,将其全部除去 \(q\) 后会得到 \(1\sim d\),此时的问题是求 \(\frac{d!}{q^{v_p(d!)}}\bmod q^k\)。对于非 \(q\) 的倍数,将其全部对 \(q^k\) 取模,得到的是 \(d_k\) 组 \(1\sim q^k\) 内和 \(q\) 互质的数和一组 \(1\sim r\) 内和 \(q\) 互质的数。即:
前者可以根据 Wilson 定理的 Gauss 推广进行简单判断。后者通过预处理 \(1\sim q^k\) 内和 \(q\) 互质的数的前缀积即可。接下来只需要继续求解 \(\frac{d!}{q^{v_p(d!)}}\),时间复杂度 \(O(\omega(p)\log n+\sqrt{p}+\sum q_i^{k_i})\),其中 CRT 部分的复杂度为 \(O(\omega(p)\log p)\)。模数固定且预处理可以做到单次 \(O(\omega(p)\log p+\sqrt{p})\)。
考虑模意义下的离散对数,即求 \(a^x\equiv b\) 的解。还是先研究较为简单的 \(a\perp p\) 情况。将 \(x\) 写成 \(AM-B\) 的形式,其中 \(1\le B\le M\)。那么有 \(a^{AM}\equiv ba^B\),分别枚举 \(A\) 和 \(B\) 并在哈希表中查询是否存在解,可以做到 \(O(\max(A,B))\) 的时间复杂度,取 \(M=\sqrt{p}\) 最优,时间复杂度 \(O(\sqrt{p})\)。其中根据 Euler 定理,若有解则必然在 \([0,p-2]\) 上有解,因此 \(1\le A\le \lceil\frac{p-1}{M}\rceil\)。
进一步考虑不对 \(p\) 做出限制。令 \(d=(a,p)\),则有 \(d\mid b\)(借助展开形式)。因此方程可以变成 \(\frac{a}{d}a^{x-1}\equiv \frac{b}{d}\pmod {\frac{p}{d}}\)。显然 \(\frac{a}{d}\perp\frac{p}{d}\),得到 \(a^{x-1}\equiv\frac{b}{d}(\frac{a}{d})^{-1}\),此时若 \(a\not\perp\frac{p}{d}\) 则继续重复,最后求出的答案加上提出 \(a\) 的数量即可,设为 \(k\),则显然有 \(k=O(\log p)\),时间复杂度 \(O(\log^2 p+\sqrt{p})\)。
考虑模数 \(m\) 的缩系,这是一个循环群,考察其生成元 \(e\),使得 \(e\) 的幂次可以得到整个缩系,我们就称 \(e\) 是模 \(m\) 意义下的原根。
将 \(a^x\equiv 1\) 的最小正整数解称为 \(a\) 模 \(m\) 的阶,记作 \(\delta_m(a)\),根据 Bezout 定理,\(a\perp m\) 是 \(\delta_m(a)\) 存在的充要条件。以下均默认 \(a\perp m\)。
阶可以刻画 \(a\) 的幂次的循环节,即 \(a^x\equiv a^{x\bmod\delta_m(a)}\)。同时 \(a^{0\sim\delta_m(a)-1}\) 各不相同,证明考虑 \(a^x\equiv a^y\rightarrow a^{y-x}\equiv 1\)。不难得到性质。
\(a^x\equiv a^y\Leftrightarrow x\equiv y\pmod{\delta_m(a)}\)。\(a^x\equiv 1\Leftrightarrow\delta_m(a)\mid x\)。
继续考察 \(\delta_m(a^k)\),根据性质其就是满足 \(\delta_m(a)\mid kx\) 的最小正整数 \(x\)。不难得到 \(\delta_m(a^k)=\frac{\delta_m(a)}{(\delta_m(a),k)}=\frac{\operatorname{lcm}(\delta_m(a),k)}{k}\)。
对于 \(a\) 的幂的阶研究是简单的,进一步研究 \(\delta_m(ab)\)。显然 \(\delta_m(ab)\mid\operatorname{lcm}(\delta_m(a),\delta_m(b))\),给出结论。
\(\delta_m(ab)=\delta_m(a)\delta_m(b)\) 当且仅当 \(\delta_m(a)\perp\delta_m(b)\)。
当 \(\delta_m(a)\not\perp\delta_m(b)\) 时显然成立,考虑互质的情况。反证,首先对于 \(\delta_m(a)\mid x\) 且 \(\delta_m(a)\delta_m(b)\nmid x\) 的 \(x\) 而言,不可能有 \(\delta_m(ab)\mid x\),因为 \(a^x\) 和 \(b^x\) 一定恰有一个为 \(1\),一个不为 \(1\)。设 \(L=\delta_m(a)\delta_m(b)\),则若 \(\delta_m(ab)<L\),必然存在质因子 \(p\mid L\) 使得 \(\delta_m(ab)\mid\frac{L}{p}\),不妨设 \(p\mid\delta_m(a)\),则 \(p\nmid\delta_m(b)\),有 \(\frac{L}{p}=\frac{\delta_m(a)}{p}\delta_m(b)\),根据上文右式不可能是 \(\delta_m(ab)\) 的倍数,因此 \(p\) 不存在。
若 \(\delta_m(a)=\varphi(m)\),则称 \(a\) 是模 \(m\) 的原根。原根相较于其它数的好处在于它是循环群的生成元,其可以生成模 \(m\) 缩系中的所有数。原根的判定可以直接求阶,有原根判定定理。
\(a\) 是 \(m\) 的原根当且仅当对于任意 \(\varphi(m)\) 的质因子 \(p\),均有 \(a^{\frac{\varphi(m)}{p}}\not\equiv 1\)。
证明和之前类似,考虑若 \(a\) 不是 \(m\) 的原根,则 \(\delta_m(a)\mid\varphi(m)\),对于任意质因子都有 \(\delta_m(a)\mid\frac{\varphi(m)}{p}\)。
原根存在定理:\(m\) 有原根的充要条件是 \(m=2,4,p^{\alpha},2p^{\alpha}\),其中 \(p\) 为奇质数。
这个形式和 Wilson 定理的 Gauss 推广一致。证明可以自行搜索。原根提供了很多遍历,其使得缩系上乘法可以转化为指数上的加法(其能生辰整个缩系)。考察原根的数量。
若 \(m\) 有原根,则缩系上使得 \(\delta_m(a)=l\) 的 \(a\) 的数量为 \(\varphi(l)\times[l\mid\varphi(m)]\)。
首先 \(l\nmid\varphi(m)\) 是简单的,考虑 \(l\mid\varphi(m)\) 的情况。设 \(g\) 为 \(m\) 的原根,即统计有多少 \(0\le k<\varphi(m)\) 使得 \(\delta_m(g^k)=l\),即 \(\frac{\delta_m(g)}{(\delta_m(g),k)}=\frac{\varphi(m)}{(\varphi(m),k)}=l\),得到 \(\gcd(\varphi(m),k)=\frac{\varphi(m)}{l}\)。这就是 \(\varphi(l)\)。证明考虑一般情况 \(\gcd(m,x)=d\) 如何计算 \(1\le x\le m\) 的数量。
这也体现了欧拉函数 \(\sum\limits_{l\mid\varphi(m)}\varphi(l)=\varphi(m)\) 的性质。考虑如何求一个数的所有原根,根据阶的性质,\(g^k(k\perp\varphi(m))\) 依然是 \(m\) 的原根,即在环上走 \(k\) 步,一定会走遍整个环,求出任意一个原根即可。王元证明了任意一个有原根的数的最小原根数量级为 \(O(m^{0.25+\epsilon})\)。结合原根判定定理后时间复杂度 \(O(m^{0.25+\epsilon}\omega(m)\log n)\)。随机化找最小原根可以做到 \(O((\log\log m)^2)\),证明考虑 \(\frac{m}{\varphi(m)}=O(\log\log m)\)。
回到阶的问题,阶可以刻画离散对数的通解形式,设离散对数 \(a^x\equiv b\),则通解之间的循环节长度恰为 \(\delta_m(a)\)。求阶可以直接对 \(a^x\equiv 1\) 求解。也可以考虑阶必然为 \(\varphi(m)\) 的因子,每次暴力尝试去掉一个质因子即可,这样除了分解质因数的额外时间复杂度为 \(O(\log^2 m)\)。
上文对于 \(\delta_m(ab)\) 已经处理完了 \(\delta_m(a)\perp\delta_m(b)\) 的情况,对于不互质的情况,分质因子讨论。若质因子 \(p\) 在 \(\delta_m(a)\) 和 \(\delta_m(b)\) 中出现次数相同,此时 \(p\) 在 \(\delta_m(ab)\) 中的出现次数不定,否则为两者出现次数的较大值。当存在原根 \(g\) 时,可以显式刻画成 \(\frac{\varphi(m)}{(\varphi(m),\log_g a+\log_g b)}\),未找到严谨的数学证明(作者并未理解这个式子)。根据这个性质可以得到存在 \(c\) 使得 \(\delta_m(c)=\operatorname{lcm}(\delta_m(a),\delta_m(b))\)。给出构造性证明,若质因子 \(p\) 在两数中出现次数不等是无需关心的,否则考虑 \(\delta_m(a^p)=\frac{\delta_m(a)}{p}\),令 \(a\leftarrow a^p\) 即可,最后处理得到的 \(a'\),则有 \(c=a'b\)。
原根是循环群,我们熟知的单位根也是循环群,设 \(n=\varphi(m)\),则 \(m\) 的缩系和 \(n\) 次单位根同构。任何一个单位根都可以由 \(\omega_n^1\) 生成,同样任何一个缩系中的数也可以由 \(g^k\) 生成。由于其同构,我们可以在模意义下做 FFT,即将单位根换成与之同构的原根,细节不进行赘述。这就是 NTT,常见模数 \(998244353\) 的原根为 \(3\),有 \(\varphi(998244353)=2^{22}\times 238\)。
设 \(p\) 为奇质数的幂次,则 \(g^{\frac{\varphi(p)}{2}}\equiv -1\),证明考虑若 \(g^x\equiv -1\),其中 \(x\neq\frac{\varphi(p)}{2}\) 且 \(x\neq\varphi(p)\),则 \(2x\not\equiv 0\pmod {\varphi(p)}\),矛盾。
上文已经讨论完了模意义下取离散对数,现在讨论模意义下开根,即 \(x^n\equiv a\pmod p\)。若 \(p\nmid a\) 且存在 \(x\),则称 \(a\) 为 \(p\) 的 \(n\) 次剩余。当 \(n=2\) 时,称 \(a\) 为 \(p\) 的二次剩余,否则为二次非剩余。有 Legendre 符号 \((\frac{a}{p})\) 定义为,当 \(a\) 是 \(p\) 的二次剩余时,\((\frac{a}{p})=1\),当 \(a\) 是 \(p\) 的二次非剩余时,\((\frac{a}{p})=-1\),当 \(p\mid a\) 时,\((\frac{a}{p})=0\)。
前置地,考察同余方程 \(ax\equiv b\pmod p\) 的解的数量。将其变形为 \(ax+py=b\),有解的充要条件是 \(d=\gcd(a,p)\mid b\)。考虑令 \(x_0\) 为最小的非负整数解,有 \(0\le x_0\le \frac{p}{d}-1\)。根据通解 \(x=x_0+k\frac{p}{d}\),不难得到在 \(0\sim p-1\) 内有 \(d\) 个解。
回到二次剩余,当 \(p\) 为奇质数时,考察形式 \(a\equiv x^2\),将其写成原根的形式 \(g^d\equiv g^{2k}\)。有 \(d\equiv 2k\pmod {p-1}\),将其变成同余方程的形式不难发现有解的充要条件是 \(2\mid d\),同时根据上文,解的数量为 \(2\)。因此对于 \(p\in\mathbb{P}\) 且 \(p>2\) 而言,原根的偶数次幂为二次剩余,奇数次幂为二次非剩余,不难得到所有原根的偶数次幂集合相同,这也可以通过直接推导得出。可以将偶数次幂类比成正数,奇数次幂类比成负数,正数存在两个不同的平方根(互为相反数),负数不存在平方根。
考虑 \(p\) 为奇质数的幂,同样设 \(g\) 为其原根。接下来的步骤几乎同奇质数一样,能得到相同的结论。