数论知识
扩展欧几里得算法
-
根据裴蜀定理,ax+by=gcd(a,b)有整数解x,y
-
用扩展欧几里得算法,可以在求gcd(a,b)的过程中求出一组x0,y0
则方程的全部解为
⎩⎨⎧x=x0+gcd(a,b)b∗ky=y0−gcd(a,b)a∗kk∈Z
二元线性丢番图方程(二元一次不定方程)
-
ax+by=c有解的充要条件:
c%gcd(a,b)=0
-
设ax+by=gcd(a,b)的一组解为(x∗,y∗)
则ax+by=c的一组解为(gcd(a,b)cx∗,gcd(a,b)cy∗)
全部解为
⎩⎨⎧x=gcd(a,b)cx∗+gcd(a,b)b∗ky=gcd(a,b)cy∗−gcd(a,b)a∗kk∈Z
一元线性同余方程
-
形如
ax≡b(modm)
称为一元线性同余方程,与二元线性丢番图方程类似
-
一元线性同余方程组可以转化为
ax+my=b
则线性同余方程有解的充要条件为
b%gcd(a,m)=0
-
根据二元线性丢番图方程的解的公式,解线性同余方程得
x=gcd(a,m)bx∗+gcd(a,m)m∗k其中x∗是ax+my=gcd(a,m)的一个解k=0,1,...,gcd(a,m)−1
欧拉定理
- 当gcd(a,n)=1时,aφ(n)≡1(mod n)
- 当n是质数时,φ(n)=n−1,所以an−1≡1(mod n)
证明:
记号:a1,a2,...,aφ(n)是1−n中与n互质的数
-
step1:由于ai和n互质,a和n互质,所以aa1、aa2、...、aaφ(n)与n互质
-
step2:假设aai≡aaj(mod n),则a(ai−aj)≡0(mod n).
因为gcd(a,n)=1,所以ai−aj≡0(mod n),即ai≡aj(mod n)
因为ai≡aj(mod n),所以aai和aaj互不相同
所以{aai}和{ai}都能表示n的简化剩余系
所以aφ(n)a1a2...aφ(n)≡a1a2...aφ(n)(mod n)
即aφ(n)≡1(mod n)
费马小定理:
当n是质数时的欧拉定理即为费马小定理
逆元
-
定义:ax≡1(mod m),x是a的模m逆元。
通常情况下,逆元指的是x的最小正整数解,则问题转化为求x的最小正整数解
-
方程有解的充要条件:gcd(a,m)=1
-
求解方法:
-
扩展欧几里得算法
原方程转化为ax+my=1=gcd(a,m)
利用扩展欧几里得算法求出x=x0+gcd(a,m)m∗k=x0+m∗k
则x的最小正整数解为(x0%m+m)%m
-
费马小定理
当m是质数时,a∗am−2≡1(mod m)
所以am−2%m就是a的逆元
-
应用
b%a=0的条件下,计算(b/a)%m.若b很大,则可以通过a的逆元来计算
即(b/a)%m化为(bx)%m=((b%m)∗(x%m))%m来计算