原根與 NTT

Lu_xZ發表於2024-05-09

階與原根

若正整數 \(m, \ a\),滿足 \((a, m) = 1\),則使 \(a^n\equiv 1 \pmod m\) 的最小正整數 \(n\) 稱為 \(a\)\(m\) 的階,記作 \(\delta_m(a)\)

\(\delta_7(1) = 1, \ \delta_7(2) = 3, \ \delta_7(3) = 6\)

原根

\(\delta_m(a) = \varphi(m)\),則稱 \(a\)\(m\) 的一個原根。

尤拉定理:若 \((a, m) = 1\),則 \(a^{\varphi(m)}\equiv 1\pmod m\)

階的性質

假設 \((a, m) = 1, \ \delta = \delta_m(a)\),則

  1. \(a^0, a^1, \dots, a^{\delta - 1}\) 在模 \(m\) 意義下兩兩不同。

    證明:

    如果存在 \(a^x \equiv a^y \pmod m, \ x < y \le \delta - 1\)

    \(a^{y - x} \equiv 1\),且 \(y - x < \delta\),與階的最小性矛盾。

  2. \(a^{\gamma}\equiv a^{\gamma'} \pmod m \iff \gamma \equiv \gamma'\pmod \delta\)

  3. \(\delta \mid \varphi(m)\)

    證明:

    \(\varphi(m) = q\delta + r, \ (0 \le r < \delta)\)

    如果 \(r > 0\),則 \(a^{q\delta + r} \equiv a^{r} \equiv a^{\varphi(m)}\equiv 1 \pmod m\),則有 \(r < \delta\),與 \(\delta_m(a) = \delta\) 矛盾。

    所以 \(r = 0\)

  4. \(m \in\mathbb{N^*}, \ a, b\in \mathbb{Z}, \ (a, m) = (b, m) = 1\),則

    \[\delta_m(ab) = \delta_m(a)\delta_m(b) \]

    的充要條件為 \((\delta_m(a), \delta_m(b)) = 1\)

  5. \(k\in \mathbb{N}, \ m \in \mathbb{N^*}, \ a\in \mathbb{Z}, \ (a, m) = 1\),則

    \[\delta_m(a^k) = \dfrac{\delta_m(a)}{(\delta_m(a), k)} \]

    證明:

    注意到:

    \[\begin{aligned} & a^{k\delta_m(a^k)}=(a^k)^{\delta_m(a^k)}\equiv 1 \pmod m \\ \implies & \delta_m(a)\mid k\delta_m(a^k) \\ \implies & \dfrac{\delta_m(a)}{\left(\delta_m(a),k\right)}\mid\delta_m(a^k) \end{aligned} \]

    另一方面,由 \(a^{\delta_m(a)}\equiv 1 \pmod m\),可知:

    \[(a^k)^{\frac{\delta_m(a)}{(\delta_m(a),k)}}=(a^{\delta_m(a)})^{\frac{k}{(\delta_m(a),k)}}\equiv 1 \pmod m \]

    故:

    \[\delta_m(a^k)\mid\dfrac{\delta_m(a)}{(\delta_m(a),k)} \]

    綜合以上兩點,得:

    \[\delta_m(a^k)=\dfrac{\delta_m(a)}{(\delta_m(a),k)} \]

原根的存在與判定

原根的存在定理

只有模 \(2,\ 4,\ p^a,\ 2p^a\)\(p\) 是奇質數)存在原根。

原根的判定定理

\(m > 1\)\(g\) 為正整數且 \((g, m) = 1\)。則 \(g\)\(m\) 的原根當且僅當對於任意 \(\varphi(m)\) 的質因子 \(q_i\)\(g^{\varphi(m)/q_i} \not\equiv 1 \pmod m\)

證明:如果 \(\delta < \varphi(m)\)\(\delta \mid \varphi(m)\),則一定存在一個 \(q_i\) 使得 \(\delta \mid\varphi(m) / q_i\)

原根個數

\(m\) 有原根,則它原根的個數為 \(\varphi(\varphi(m))\)

證明:

\(m\) 有原根 \(g\),則:

\[\delta_m(g^k)=\dfrac{\delta_m(g)}{\left(\delta_m(g),k\right)}=\dfrac{\varphi(m)}{\left(\varphi(m),k\right)} \]

所以若 \(\left(k,\varphi(m)\right)=1\),則有:\(\delta_m(g^k)=\varphi(m)\),即 \(g^k\) 也是模 \(m\) 的原根。

而滿足 \(\left(\varphi(m),k\right)=1\)\(1\leq k \leq \varphi(m)\)\(k\)\(\varphi(\varphi(m))\) 個。所以原根就有 \(\varphi(\varphi(m))\) 個。

P6091 【模板】原根submission

指標(離散對數)

定義

對於質數 \(p\),假設 \(g\)\(p\) 的一個原根,則 \(g^0, \ g^1, \dots, g^{p - 2}\) 在模 \(p\) 意義下是 \(1, 2, \dots, p - 1\) 的一個排列。

假設對於 \(x \in [1, p)\)\(g^c\equiv x \pmod p\),則稱 \(x\) 的指標為 \(c\),記作 \(\operatorname{ind}(x) = c\)(或 \(\operatorname{ind}_g(x) = c\))。

性質

對於任意 \(x, y \in [1, p)\),存在

\[\begin{aligned} \operatorname{ind}(xy) &= \operatorname{ind}(x) + \operatorname{ind}(y)\pmod {\varphi(p)}\\ \\ \operatorname{ind}(x^c) &= c\operatorname{ind}(x)\pmod {\varphi(p)}\\ \end{aligned} \]

類似於實數運算中的對數,因此指標亦稱離散對數。

baby step giant step (BSGS)

給定質數 \(p\),求最小滿足 \(g^c \equiv x \pmod {p}\) 的非負整數 \(c\) 的值。

\(c = aB + b\),其中 \(B = \lceil\sqrt{p}\rceil\)

因為 \(c < \varphi(p) = p - 1\),所以 \(a, \ b < B\)

  1. BS:列舉 \(b = 0, \ 1, \ \dots, B - 1\),將 \(xg^{b}\) 計入雜湊表。

  2. GS:列舉 \(a = 1, \ 2, \ \dots, B\),若存在 \(g^{aB} = xg^b\),則最小滿足條件的 \(c = aB - b\)

最小性證明:

對於 \(xg^b \bmod p\) 相同的 \(b\),大的會在雜湊表中覆蓋小的,從而使 \(aB - b\) 最小。

\(B > b\),所以 \(a\) 對答案的貢獻大於 \(b\),從小到大列舉 \(a\) 使答案最小。

【模板】BSGS

例題

Discrete Roots

題意:給出兩個質數 \(p, k\) 和一個整數 \(a\),求 \(x^k = a \pmod p\) 的所有解。

\[\begin{aligned} &\operatorname{ind}(x^k) = k\operatorname{ind}(x) = \operatorname{ind}(a) \pmod{\varphi(p)}\\ \\ &k\operatorname{ind}(x) \equiv\operatorname{ind}(a)\pmod{\varphi(p)}\\ \\ &x \equiv g^{\operatorname{ind}(x)} \pmod p \end{aligned} \]

所以只需處理 \(p\) 的原根以及 \(a\) 的指標,中間的同餘方程可用 exgcd 求解。

特判 \(a = 0\) 的情況。

submission

快速數論數論變換(NTT)

即把 FFT 中 \(\mathbb{C}\) 上的運算變成 \(\mathbb{Z}_p\) 上的運算。

  • 假設素數 \(p\) 滿足 \(p = r2^l + 1\)\(g\)\(p\) 的原根。

  • \(g_n = g^{\frac{p - 1}{n}}\) 替代 \(\omega_n\)

  • \(g_{2n}^{2k} \equiv g_n^k \pmod p, \ (2n < 2^l)\)

  • \(g_{2n}^{n} \equiv -1 \pmod p, \ (2n < 2^l)\)

    \(g_{2n}^n = g^{\frac{p - 1}{2}}\)

    由於 \((g^{\frac{p - 1}{2}})^2 \equiv g^{p - 1} \equiv 1\pmod p\),所以 \(g_{2n}^n\) 只可能同餘 \(1\)\(-1\)

    又因為 \(g\) 為原根,\(\delta_{p}(g) = p - 1\)

    \(g^{\frac{p - 1}{2}} \equiv 1\) 則與階的最小性矛盾,所以 \(g^{\frac{p - 1}{2}}\equiv-1\pmod p\)

  • \(\sum_{k = 0}^{n - 1}g_{n}^{ik}g_{n}^{-kj} \equiv \begin{cases} n & i = j\\ 0 & i \neq j \end{cases}\pmod p\),其中 \(i, j \in [0, n)\)

優點:快,精確。

限制:模數要滿足 \(p = 2^l + 1\)

常見模數:

  • \(65537 = 2^{16} + 1, \ g = 3\)

  • \(998244353 = 119 \cdot 2^{23} + 1, \ g = 3\)

  • \(1004535809 = 479 \cdot 2^{21} + 1, \ g = 3 \quad > 10^{9}\)

  • \(4179340454199820289 = 29 \cdot 2^{57} + 1, \ g = 3 \quad> 4\cdot 10^{18}\)

A * B Problem Plussubmission

分治 FFT(NTT)

  1. 在模 \(998244353\) 意義下,計算 \(f(x) = \prod (x - a_i)\) 的各項係數。

    • 計算 \([l, mid]\) 之積。

    • 計算 \([mid + 1, r]\) 之積

    • \([l, mid]\)\([mid + 1, r]\) 相乘。

    時間複雜度 \(O(n\log^2n)\)

  2. 在模 \(998244353\) 意義下,計算 \(f(x) = \prod f_i(x)\) 的各項係數,其中 \(\sum\deg(f_i(x)) \le 10^5\)

    可以和上題一樣分治。

    也可以按照次數維護一個優先佇列,每次相乘當前最小的兩個,即一棵哈夫曼樹。

相關文章