Skip to content

初等数论(exgcd & 中国剩余定理 & 卢卡斯定理)

〇、整除

定义 baamodb=0

  1. 求证:cacbc(a+b),cab

证明:设 a=k1c,b=k2c,a+b=c(k1+k2),ab=c2k1k2

一、辗转相除法

  1. 求证:gcd(a,b)=gcd(b,amodb)

证明:设 amodb=c,即 a=kb+c

c=akb

da,db

dkbdc

a,b 的公因数,均为 amodb 的因数,即均为 b,amodb 的公因数。

db,dc

dkbda

b,amodb 的公因数,均为 a 的因数,即均为 a,b 的公因数。

gcd(a,b)=gcd(b,amodb)

二、裴蜀定理

  1. 求证:ax+by=gcd(a,b) 有整数解。

证明:https://oi-wiki.org/math/number-theory/bezouts/

三、exgcd

  1. ax+by=gcd(a,b) 的一组整数解。

解:设已知 bx+(amodb)y=gcd(b,amodb) 的一组整数解 x,y

gcd(a,b)=gcd(b,amodb)

ax+by=bx+(amodb)×y

ax+by=bx+(aab×b)×y

ax+by=ay+b(xab×y)

  1. a,b 互质,求 a 在模 b 意义下的逆元 x,即求 ax1(modb) 的一个解。

解:原方程等价于 ax+by=1,其中 y<0

gcd(a,b)=1,所以 exgcd 可求。

  1. 求证:ax+by=c 有整数解 gcd(a,b)c

证明:

①充分性:设 d=gcd(a,b),则 a=k1d,b=k2d

c=ax+by=d(k1x+k2y)

dc

②必要性: 由裴蜀定理,ax+by=d 有整数解。

a×cxd+b×cyd=c

dccxd,cyd 是整数。

  1. ax+by=c 有解:

(1)求其的一组特解 x,y

解:由 exgcd 易求 ax+by=gcd(a,b) 的一组解 x0,y0

ax+by=c 有解,gcd(a,b)c

a×cx0gcd(a,b)+b×cy0gcd(a,b)=c

解得 {x=cx0gcd(a,b)y=cy0gcd(a,b)

(2)求其的通解公式。

解:设 a(x+m)+b(y+n)=c,化简得 am+bn=0

d=gcd(a,b)。易得 {m=k×bdn=k×ad

(3)找出解的个数,判断是否有解满足 x>0,y>0

解:即 x+m>0,y+n>0

化简得 dx+1bkdy1a

解的个数即为 k 的个数。

k 存在,则有解满足上述条件。

(4)分别给出 xy 最小的正整数值。

解:由一次函数,x 随着 k 增大而增大,y 随着 k 增大而减小。

四、中国剩余定理

求解以下方程组:

xai(modbi)

有如下方法:

  1. mod=bi,令 mi=mod÷bi

  2. 求模 bi 意义下的 mi1,记作 mi

  3. 答案为 (aimimi)modmod

求证:以上方法的正确性。

证明:若 ij,则由构造方式,有 bimj,即 mj=0(modbi)

ajmjmj=0(modbi)

i=j,则 mimi1=1(modbi)

综上,xajmjmjai+ijajmjmjai(modbi)

五、卢卡斯定理

CnmCn÷pm÷p×Cnmodpmmodp(modp)

适用于 n,m 较大,p 较小的情况。

注意预处理阶乘数组只能处理到 <p 的地方,不然将会导致答案全是 0

最近更新