原根
定义
对于一个正整数 \(p\),存在一个正整数 \(a\) 满足一下条件,称 \(a\) 是 \(p\) 的一个原根。
性质
-
具有原根的数字只有一下这些形式:\(2,4,2p^n,p^n\),且原根一定存在(\(p\) 是质数)
-
最小原根 \(\leq \sqrt [4] {n}\)。
-
若 \(n\) 有原根,那么原根个数是 \(\varphi (\varphi(n))\)。
找原根
直接暴力找。
二次剩余
定义
存在在 \(x^2 \equiv a \mod p\),称 \(a\) 是 \(\mod p\) 意义下的一个二次剩余。鉴于实际情况,下面只考虑 \(p\) 为奇质数的情况。
性质
- \(\mod p\) 意义下的二次剩余 \(n\) 一共有 \(\frac {p-1} 2\) 个(不包括 \(0\))。
- 两个二次剩余相乘或相除,会得到一个新的二次剩余。
- 一个二次剩余的逆元是二次剩余。
- 一个二次剩余乘上一个非二次剩余得到一个二次剩余。
欧拉准则
一个数 \(n\) 是 \(\mod p\) 意义下的二次剩余当且仅当 \(n^{\frac {p-1} 2}=1\)。由费马小定理得 \(n^{p-1}\equiv 1\mod p\),所以 \(n^{\frac {p-1} 2} \equiv 1/-1 \mod p\)。由于 \(n\) 不是二次剩余就是二次非剩余,所以 \(n^{\frac {p-1} 2}\equiv -1\mod p\) 等价于 \(n\) 是 \(\mod p\) 意义下的二次剩余。
Cipolla 算法
- 找到 \(a^2-n\) 是一个在 \(\mod p\) 意义下的二次非剩余。至于怎么找,就直接随。
- 定义 \(i^2=a^2-n\),显然此时的 \(i\) 是一个复数。
- 则有 \((a+i)^{p+1}\equiv n \mod p\)。
\[\begin{aligned}
(a+i)^{p+1} & = (a+i)(a+i)^p\\
& =(a+i)(a^p+i^p)(显然只有 \binom p 0 和 \binom p p有意义)\\
& = (a+i)(a-i)\\
& = a^2-(a^2-n)=n
\end{aligned}
\]
所以 \((a+i)^{\frac {p+1} 2}\) 是一个解,可喜可贺的是这个解就是一个实数至于为什么我也不知道。
例题
板子题,不多说。
单位根反演
单位根
\(x^k \equiv 1\mod n\),那么我们称 \(x\) 为 \(\mod n\) 意义下的 \(k\) 单位根。根据定义,如果 \(n\) 有原根,那么 \(\mod n\) 意义下的 \(k\) 次单位根(本源单位根)可以表示为 \(p^{(n-1)/k}\),其中 \(p\) 为 \(n\) 的一个原根。
形式
\[[n|k] = \frac 1 n \sum\limits_{i=0}^{n-1} \omega_n ^{ik}
\]
证明
看着后面的求和显然是一个等比数列求和,那么再放一个等比数列求和公式(\(q\) 表示公比):\(\frac {a_1-a_nq} {1-q}\)。
例题
\[\begin{aligned}
\sum \limits_{k|i,0 \leq i \leq n} \binom n i&=\frac 1 k \sum\limits_{0 \leq i \leq n} \binom n i \sum\limits_{j=0}^{k-1} \omega_k^{ij}\\
&=\frac 1 k \sum\limits_{j=0}^{k-1}\sum\limits_{i=0}^n\binom n i \omega_k^{ij}\\
&=\frac 1 k \sum\limits_{j=0}^{k-1} (\omega_k^j+1)^n
\end{aligned}
\]
这样 \(k \log n\) 随便做了。
\[\begin{aligned}
\sum\limits_{i=0}^n \binom n i p^i \lfloor \frac i k \rfloor&=\sum\limits_{i=0}^n \binom n i p^i \sum \limits_{j=0}^i[k|j]-(1+p)^n\\
& = \sum\limits_{i=0}^n\binom n i p^i \sum\limits_{j=0}^{i}\frac 1 k \sum\limits_{l=0}^{k-1} \omega_k^{lj}-(1+p)^n\\
& = \frac 1 k \sum\limits_{l=0}^{k-1}\sum\limits_{i=0}^n\binom n i p^i\sum\limits_{j=0}^i\omega_k^{lj}-(1+p)^n\\
& = \frac 1 k \sum\limits_{l=0}^{k-1}\sum\limits_{i=0}^n\binom n i p^i \frac {1-\omega_k^{l(i+1)}} {1-\omega_k^l}-(1+p)^n\\
& =\frac 1 k \sum\limits_{l=0}^{k-1}\frac {(1+p)^n-\omega_k^l\sum\limits_{i=0}^n\binom n i (p\omega_k^l)^i} {1-\omega_k^l}-(1+p)^n\\
& = \frac 1 k \sum\limits_{l=0}^{k-1}\frac {(1+p)^n-\omega_k^l(1+p\omega_k^l)^n} {1-\omega_k^l}-(1+p)^n
\end{aligned}
\]
特判一下 \(l=0\)。
\[\begin{aligned}
\sum\limits_{i=0}^n\binom n i p^i (i+1) & =\sum\limits_{i=0}^n\binom n i p^i i+(1+p)^n\\
& = p \sum\limits_{i=1}^n\binom n ip^{i-1}i+(1+p)^n\\
& = p \sum\limits_{i=0}^{n-1} \binom n {i+1} p^{i} (i+1)+(1+p)^n\\
& = np \sum\limits_{i=0}^{n-1} \binom {n-1} i p^i+(1+p)^n\\
& = np(1+p)^{n-1}+(1+p)^n
\end{aligned}
\]
至此 \(k \log n\) 随便做了。