数论基础篇
数论
一、整除
\(b=k\times a(k\in \mathbb Z)\Leftrightarrow a|b\Leftrightarrow\) \(\color{red} a 是 b 的因子\)。
-
性质: \(a|b\) 且 $a|c\Leftrightarrow $ \(a|(ma+nb),m,n\in \mathbb Z\)
-
猜结论,从 “因子” 的角度证明。
二、同余
\(a\equiv b\mod m\Leftrightarrow \color{red} m|(a-b)\)
-
性质
(1) 加减: \(a\equiv x,b\equiv y\Rightarrow a\pm b\equiv x\pm y\)
(2) 乘:
\[\qquad\begin{cases}a\equiv x,b\equiv y\Rightarrow ab\equiv xy\\a\equiv b \Rightarrow a^k\equiv b^k\end{cases} \](3) 除:
\[\qquad\begin{cases}ac\equiv bc \mod m~且~m\perp c\Rightarrow a\equiv b \mod \\a\equiv b \mod m~且~d~|~a,b,m \Rightarrow \frac{a}{d}\equiv \frac{b}{d} \mod \frac{m}{d} \end{cases} \](4) 因数: \(a\equiv b\mod m\Rightarrow a\equiv b \mod n,n|m\)
(5) 倍数: \(a\equiv b \mod m,n\Rightarrow a\equiv b\mod [m,n]\)
(6) 结合律:
\(\color{red}(a\pm b)\% m = (a\%m\pm b\%m) \%m\)
$\color{red}(a\times b)\%m = (a\% m\times b\%m)\%m$(7) \(\color{red}\large乘法逆元\) :
当 \(\color{red}a\perp m\) 时,记模 \(m\) 意义下 \(inv_i\) 为满足: \(i\times inv_i\equiv 1\mod m\) 的整数。
求法:
<1>蒙哥马利:当 \(m\) 为质数时, \(inv_x=x^{m-2}\) 。
证明:由费马大定理, \(m\) 为质数时 \(x^{m-1}\equiv 1\) ,则 \(x^{m-2}\equiv x^{-1}\) 。
<2>欧几里得求法
设 \(x=inv_a\) ,那么要解 \(ax\equiv 1\mod m\) ,等效于解 \(ax+bm=1\) 。最后调整 \(x\) 到 \([1,m-1]\) 。
<3>线性推逆元
设 \(\rm s=P/x,t=P%x\) ,则 \(\rm P=sx+t\equiv 0 \mod P\) ,移项得 \(\frac{1}{x}\equiv \frac{-s}{t}\)
<4>线性推阶乘逆元
由于 \(i!~inv_{i!}\equiv 1\equiv (i+1)!~inv_{(i+1)!}\) ,则 \(inv_{i!}=(i+1)\times inv_{(i+1)!}\)
由 整除 推性质。
-
*一些定义
(1) 同余类:模 \(m\) 意义下 \(x\) 的同余类定义为:由所有在模 \(m\) 意义下等于 \(x\) 的数组成的集合。这样的集合共 \(m\) 个。
(2) 完全剩余系:由模 \(m\) 的的 \(m\) 个同余类中分别取出一个数组成模 \(m\) 的一个完系。
在完系中,任意两个数模 \(m\) 互不同余。
(3) 缩剩余系:在完系中保留所有与 \(m\) 互质的数。
缩系大小为 \(\phi(m)\) ,且缩系中任意两个元素 \(\times 或/\) 的结果仍然是某个缩系元素的同余类。
性质:
(1) 若 \(a_{1,2...m}\) 是模 \(m\) 下的一个完系,且 \(x\perp m\) ,那么 \(xa_i+b\) 也是完系。
若 \(a_i\) 为一个缩系且 \(x\perp m\) ,那么 \(xa_i+b\) 也是缩系。
(2) 若 \(a_i\) 为一个完系,则 $$\sum a_i\equiv \frac{m(m+1)}{2}\mod m$$
(3) 若 \(a_i,b_i\) 均为缩系,则 $$\prod a_i\equiv \prod b_i \mod m$$
这些东西和一些东西的证明有关,比如:欧拉定理、原根等等。不要求完全掌握。
三、素数
-
算术基本定理:
任意数可唯一拆解为 \(x=\prod p_i^{\alpha_i}\) ,其中 \(p_i\) 为质数, \(\alpha_i\in \mathbb N\) 。
拓:
(1) 约数个数:\(\prod(a_i+1)\)
(2) 约数和: \(\prod (1+p_i^1+p_i^2+...p_i^{\alpha_i})=\prod \frac{p_i^{\alpha_i+1}-1}{p_i-1}\)
(3) \((a,b)=\prod p_i^{\min(\alpha_i,\beta_i)},[a,b]=\prod p_i^{\max(\alpha_i,\beta_i)}\)
\((a,b)\times [a,b]=ab\)
-
质数的判定
定理:\(n\) 以内素数个数随 \(n\) 的增大逐渐逼近 \(\frac{n}{ln~n}\) 。
(1) 朴素判定
定理:如果 \(n\) 是合数,那么一定存在一个 \(\le \sqrt{n}\) 的质数是它的因子。
枚举所有 \(\le \sqrt n\) 的数,判断其是不是 \(n\) 的因子即可。 \(\mathcal O(\sqrt n)\)
(2) 埃氏筛
对于每个素数,把它的所有倍数筛去。
rep(i,1,n)if(!p[i]) for(int j=p[i]+p[i];j<=n;j+=p[i]) p[j]=1; 定理: \(\sum_{p\le n}\frac{1}{p}=\log \log n\)
所以埃氏筛复杂度为 \(\mathcal O(n\log \log n)\) 。 埃氏筛的优势:能够比较准确地 运用某些数 来筛去 某个范围内的值 。
经典例题:给定常数 \(K\) ,定义一个满足 \(x>1\) 且 \(\forall i \in [2,min(K,x-1),i\nmid x\) 的数 \(x\) 为类质数,求 \([L,R]\) 所有类质数的和。 \(\rm L,R\le 10^9,R-L\le 10^7\) 。于是我们先求出所有 \(\le K\) 的质数,再用这些数去筛掉 \([L,R]\) 中的数。
(3) 欧拉筛
注意到埃氏筛中很多数被多个素数筛掉,我们改进一下使得每个数只被其最小的质因子筛掉。这就是欧拉筛。
```
rep(i,1,n){
if(!p[i])pr[++cnt]=i;
rep(j,1,cnt){
if(i*pr[j]>n)break;
p[i*pr[j]]=1;
if(i%pr[j]==0)break;
}
}
```
复杂度 \(\mathcal O(n)\)
(4) \(\rm Miller-Rabin\) 素数判定
<1> 前置:
费马小定理: \(p\) 为质数时, \(\forall a,a^{p-1}\equiv 1\mod p\) 。
费马素数检测: \(a^{p-1}\equiv 1\mod p\) 是 \(p\) 为素数的充分不必要条件。
二次探测定理:当 \(p\) 为素数时, \(x^2\equiv 1\mod p\) 当且仅当 \(x=1或p-1\) 。那么我们可以记录 \(y=x^2\) ,如果 \(y=1\) 但是 \(x\ne1或p-1\) ,那么 \(p\) 就不是素数。
<2> 实现:
i. 直接判断 0,1,2 和偶数。
ii. 将 \(p-1\) 拆分成 \(2^k\times t\) 的形式,方便二次探测。
iii. 随机一个 \(\le p-1\) 的 \(a\) ,初始 \(x=a^t\%p\) ,不断二次探测,共进行 \(k\) 次。
iiii. 最后 \(x=a^{p-1}\) ,检测 \(x\) 是否与 \(1\) 同余。
iiiii. 返回 iii ,进行 \(10\) ~ \(20\) 次。
bool pd(int p){
if(p<=1)return false;
if(p==2)return true;
if(!(p&1))return false;
int k=0,t=p-1;
while(!(t&1))t>>=1,++k;
rep(i,1,10){
int a=random(p-1);
int x=kpow(a,t,p);
rep(j,1,k){
int y=x*x%p;
if(y==1&&x!=1&&x!=p-1)return false;
x=y;
}
if(x!=1)return false;
}return true;
}
虽然是个随机化算法,但是检测很多次后基本上能保证正确性。复杂度 \(\mathcal O(n^{\frac{1}{4}})\) 。
四、重要数论定理及算法
-
欧几里得算法与扩展欧几里得算法
(1) 欧几里得算法求 \(gcd\) :
若 \(d~|~a,d~|~b\) ,则 \(d~|~(ax+by)\) ,那么一定满足 \(d~|~(a-\lfloor\frac{a}{b}\rfloor\times b)\) ,那么 \(d~|~gcd(a,b)\) 。所以 \(gcd(a,b)=gcd(b,a\%b)\) 。
\(a\to a\%b\) ,首先 \(a\ge b\) ,在值域上每 \(b\) 分段,那么无论 \(a\) 在哪一段,都满足 \(a\%b\le \frac{a}{2}\) 。所以每次递归中,大的那个数至少减半,复杂度 \(\mathcal O(\log(a+b))\) 。
(2) 扩展欧几里得算法解丢番图方程:
<1> 丢番图方程:形如 \(a_1x_1+a_2x_2+...a_nx_n=c\) 的不定方程。这里只考虑 \(ax+by=c\) 。
<2> 裴蜀定理:丢番图方程有解的充要条件为 \(gcd(a_1,x_2...a_n)|c\) 。
<3> 扩展欧几里得算法:解 \(ax+by=(a,b)\) 得出一组整数解。
由于 \(ax_1+by_1=(a,b)\) 且 \((a,b)=(b,a\%b)\) ,那么 \(ax_1+by_1=bx_2+a\%by_2\) 。
又因为 \(bx_2+a\%by_2=bx_2+ay_2-\lfloor\frac{a}{b}\rfloor\times by_2=y_2a+(x_2-\lfloor\frac{a}{b}\rfloor y_2)b\) 。
换主元,系数相同一定是一组解,那么 \(\begin{cases}x_1=y_2\\y_1=x_2-\lfloor\frac{a}{b}\rfloor y_2\end{cases}\) ,递归处理即可。
边界为 \(b=0\) 时, \(x=1,y=0\) 。
通解:\(\begin{cases}x=x_0+t\times \frac{b}{(a,b)}\\y=y_0-t\times \frac{a}{(a,b)}\end{cases},t\in \mathbb Z\) 。
\(ax+by=c\) 若 \(c\ne (a,b)\) ,相当于解 \(ax+by=k\times (a,b)\) 即 \(ax'+by'=(a,b),x=kx',y=ky'\) 。
-
欧拉定理与费马小定理
(1) 欧拉函数 \(\varphi(n)\) :\(\sum_{i=1}^{n-1}[gcd(i,n)==1]\) (小于 \(n\) 的数中与 \(n\) 互质的正整数的个数)
<1> 性质
i. 积性函数:若 \(a\perp b\) ,则 \(\phi(ab)=\phi(a)\times \phi(b)\) 。
ii. \(\sum_{d|n} \varphi(d)=n\)
iii. \(\varphi\times I=id\) (反演中用到)
<2> 求法
i. 通式法: \(\varphi(n)=n\prod_{p_i|n} (1-\frac{1}{p_i})\)
证明:
当 \(n\) 为质数时: \(\varphi(n)=n-1\) 。小于 \(n\) 的所有数都与 \(n\) 互质。
当 \(n=p^k\) 时: \(\varphi(p^k)=p^k-p^{k-1}=p^k\times (1-\frac{1}{p})\) 。 \(n\) 以内只有 \(p\) 的倍数与 \(n\) 不互质,而 \(p\) 的倍数有 \(p,2p,3p...p^{k-1}\cdot p\) 共 \(p^{k-1}\) 个。
当 \(n\) 一般时,将 \(n\) 唯一分解为 \(\prod_{p_i|n} p_i^{\alpha_i}\) 。由于 \(\varphi\) 为积性函数,则
$$\varphi(n)=\prod_{p_i|n} \varphi(p_i^{\alpha_i})=\prod_{p_i|n} p_i^{\alpha_i}\times (1-\frac{1}{p_i})=n\times \prod_{p_i|n} (1-\frac{1}{p_i})$$
证毕。
ii. 欧拉筛
当 \(x\) 为质数时, \(\varphi(x)=x-1\)
当 \(x=i\times p_j\) 且 \(i\perp p_j\) 时,由积性函数, \(\varphi(x)=\varphi(i)\times \varphi(p_j)\) 。
当 \(x=i\times p_j\) 且 \(i\%p_j\ne0\) 时, \(\varphi(x)=p_j\times \varphi(i)\) 。
理解:由通式,在 \(i\) 基础上多乘一个 \(p_j\) 并不改变 \(\prod_{p_i|n}(1-\frac{1}{p_i})\) ,只是使 \(n=i\to i\times p_j\) 。
(2) 欧拉定理: \(\color{red}a\perp m\) 时, \(a^{\varphi(m)}\equiv 1\mod m\)
证明:设 \(x_i,i\in[1,\varphi(m)]\) 是模 \(m\) 意义下的一个缩系,若 \(a\perp m\) ,那么 \(ax_i\) 也是一个缩系。(性质 (1) )
根据缩系的性质 (3) , \(\prod x_i\equiv\prod ax_i \mod m\)
又因为 \(\prod ax_i=a^{\varphi(m)}\prod x_i\) ,所以 \(a^{\varphi(m)}\equiv 1 \mod m\) 。
(3) 费马小定理:当 \(m\) 为质数时, \(a^{m-1} \equiv 1 \mod m\) 。欧拉定理是对其的一般化。
(4) *扩展欧拉定理:
$$ab\equiv\begin{cases}a,(a,m)=1\ a^b,(a,m)\ne 1,b<\varphi(m)\ a^{b%\varphi(m)+\varphi(m)},(a,m)\ne 1,b\ge\varphi(m) \end{cases} \equiv a^{min(b,b%\varphi(m)+\varphi(m))}$$
-
*威尔逊定理: \((p-1)!\equiv -1\mod p\Leftrightarrow p\) 为质数。
-
中国剩余定理 \(\rm (CRT)\)
求一个 \(x\) 满足 \(\begin{cases}x\equiv a_1\mod m_1\\x\equiv a_2\mod m_2\\\vdots \qquad\vdots\qquad\qquad\vdots\end{cases}\) 。其中 \(\color{red}m_i 互质\)。
解:设 \(S=\prod m_i\) , \(M_i=\frac{S}{m_i}\) ,\(y_i\) 为模 \(m\) 意义下 \(M_i\) 的逆元。
那么 \(a_iM_iy_i\equiv \begin{cases}a_i\mod m_i(y_i为逆元)\\ 0\mod m_j,j\ne i(M_i含有m_i的因子)\end{cases}\)
所以 \(x=\sum a_iM_iy_i\) 一定是一个解。通解为 \((\sum a_iM_iy_i)+kS\) 。
*扩展中国剩余定理
-
\(\rm Lucas\) 定理
\[\tbinom{n}{m}\%p=\tbinom{n/p}{m/p}\times \tbinom{n\%p}{m\%p}\%p \]

浙公网安备 33010602011771号