简单数论

0. 阅读前须知

本文章仅存在于整数范围内。

aba|b 表示 aabb 的因数。

gcd(a,b)\gcd (a,b) 表示求最大公因数。

1. 同余

1.1 同余的定义

对于两个整数 a,ba,b ,如果它们除以 pp 的余数相同,则称它们模 pp 同余,记作:

ab(modp)a\equiv b\pmod p

带余除法 a÷p=kba\div p=k\cdots\cdots b 也可写成 ab(modp)a\equiv b\pmod p

在模 pp 意义下,只有 0p10\sim p-1pp 个数。

1.2 同余的计算性质

如果 ab(modp)a\equiv b\pmod p

a±kb±k(modp)a\pm k\equiv b\pm k\pmod p a×kb×k(modp)a\times k\equiv b\times k\pmod p akbk(modp)a^k\equiv b^k\pmod p ab(modp)p(ab)a\equiv b\pmod p\Rightarrow p|(a-b)

2. 扩展欧几里得(exGCD)

2.1 exGCD 是干嘛的?

扩欧用于解形如下面的不定方程:

ax+by=gcd(x,y)ax+by=\gcd(x,y)

2.2 exGCD 怎么写?

void exgcd(int a,int b,int &x,int &y)
{
   if(b==0)
   {
      x=1,y=0;
      return;
   }
   exgcd(b,a%b,y,x);
   y-=a/b*x;
}

证明见 oi-wiki

2.3 exGCD 解的值域

由于 ax+by=gcd(a,b)ax+by=\gcd(a,b),所以必然有的解会爆 long long

万幸的是,如果 b0b\ne 0,那么必然有一组解满足 xb,ya|x|\le b,|y|\le a

3. 裴蜀定理

方程 ax+by=cax+by=c 有解当且仅当 gcd(a,b)c\gcd(a,b)|c

4. 逆元

4.1 逆元的定义

如果 ax1(modp)ax\equiv 1\pmod p,则我们称 xxaa 在模 pp 意义下的逆元,记作 x=a1x=a^{-1}

显然,xx1a=a1\dfrac{1}{a}=a^{-1} 在模 pp 意义下是等价的。

4.2 逆元存在性定理

xx 在模 pp 意义下存在逆元当且仅当 apa\bot p。(aapp 互质)

证明略。

  • 推论:当且仅当模数 pp 是质数,[1,p1][1,p-1] 内所有整数都存在模 pp 意义下的逆元。00 没有逆元。此时称 [1,p1][1,p-1] 是模 pp 意义下的一个乘法群

4.3 逆元的一些性质

  • 定理:模 pp 意义下,若存在 xx 的逆元 x1x^{-1},则唯一。
  • 定理:模质数 pp 意义下,[1,p1][1,p-1] 内所有整数的逆元互不相同。

4.4 求逆元

可以用 exGCD 求逆元。

方程为:xx1+pk=1xx^{-1}+pk=1

推导过程之后写。

4.5 线性求 1n1\sim n 的逆元

for(int i = 2; i <= n; i++)
	    ans[i] = (p - ans[p % i] * (p / i) % p);

4.6 线性求 a1ana_1\sim a_n 的逆元

pi=j=1iajp_i=\prod\limits _{j=1}^{i} a_j

那么我们可以用exGCD求出 pn1{p_n}^{-1},记作 vnv_n

此时 vn×an=(i=1n1ai)1v_n\times a_n= \left(\prod\limits_{i=1}^{n-1}a_i\right)^{-1},记作 vn1v_{n-1},同理,可以求出 v1vn2v_1\sim v_{n-2}

ai1=vi×pi1{a_i}^{-1}=v_i\times p_{i-1}

4.6 求 ab\dfrac{a}{b} 的逆元

abx(modp)\dfrac{a}{b}\equiv x\pmod p

那么 abx(modp)a\equiv bx\pmod p

x=xax'=\dfrac{x}{a},那么 bx1(modp)bx'\equiv 1\pmod p

这个方程是可以解的。最终 x=axx=ax'

5. 一些定理

5.1 费马小定理

lhq:费马小

费马小定理:如果质数 pp 满足 apa\bot p,则 ap11(modp)a^{p-1}\equiv 1\pmod p

  • 另一个形式:对于任意整数 aaapa(modp)a^p\equiv a\pmod p

总所周知,费马小也是可以求逆元的。

  • 条件:pp质数
  • 方法:a1=ap2modpa^{-1}=a^{p-2}\bmod p

5.2 威尔逊定理

威尔逊定理(Whison Theorem):pp 是质数的充要条件是 (p1)!1(modp)(p-1)!\equiv 1\pmod p

5.3 欧拉定理

欧拉定理(Eular Theorem):

apaφ(p)1(modp)a\bot p\Rightarrow a^{\varphi(p)}\equiv 1\pmod p

其中 φ(m)\varphi(m) 表示 [1,m][1,m] 中与 mm 互质的数的个数。

5.4 卢卡斯定理

卢卡斯(Lucas)定理:

(nm)modp=(npmp)×(nmodpmmodp)modp\dbinom nm\bmod p= \begin{pmatrix}\left\lfloor \dfrac np\right\rfloor\\ \left\lfloor\dfrac mp\right\rfloor\end{pmatrix} \times\dbinom {n\bmod p}{m\bmod p}\bmod p

一般来说,我们不会只调用一次 LucasLucas。因为 LucasLucas 可以被 p=2p=2 卡掉,所以这个时候可以递归调用 LucasLucas。即

Lucas(n,m)=(nm)×Lucas(np,mp)Lucas(n,m)=\dbinom nm\times Lucas\left(\dfrac{n}{p},\dfrac{m}{p}\right)

6. 中国剩余定理

6.0 中国剩余定理的来源

「物不知数」问题:有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二。问物几何?

该问题最早见于《孙子算经》中,并有该问题的具体解法。宋朝数学家秦九韶于 1247 年《数书九章》卷一、二《大衍类》对「物不知数」问题做出了完整系统的解答。上面具体问题的解答口诀由明朝数学家程大位在《算法统宗》中给出:

三人同行七十希,五树梅花廿一支,七子团圆正半月,除百零五便得知。

6.1 线性同余方程组

给定 nn 个线性同余方程:

{xa1(modm1)xa2(modm2)xan(modmn)\begin{cases}x\equiv a_1\pmod {m_1}\\x\equiv a_2\pmod {m_2}\\\cdots\\x\equiv a_n\pmod {m_n}\end{cases}

mim_i 两两互质,求 xx 的通解。

6.2 中国剩余定理(CRT)

M=miM=\prod m_iMi=MmiM_i=\dfrac{M}{m_i}tit_i 是在 MiM_i 在模 mim_i 意义下的逆元。

则:

x=kM+i=1naitiMix=kM+\sum_{i=1}^{n} a_it_iM_i

6.3 扩展中国剩余定理(exCRT)

如果 mim_i 两两不互质,那么就不能使用 CRT 了。

那什么是 exCRT 呢?

如果我们知道两个同余方程,将其合并成一个,这样就可以一个接着一个合并了。

?

posted @ 2024-07-15 13:45  sLMxf  阅读(35)  评论(0)    收藏  举报  来源