2020.1.29
数论(二)(持续更新)
1.线性组合
给定整数{x~1~,x~2~,x~3~,...,x~n~}和k
求任意一组整数{a~1~,a~2~,a~3~,...,a~n~}
满足a~1~x~1~+a~2~x~2~+a~3~x~3~+...+a~n~x~n~=k,或返回无解。
解法
设d=gcd(x~1~,x~2~,...,x~n~)显然仅当d|k时有解(k可以看成n组d的和)
若n=1则直接令a~1~= k/x~1~。(只有一个数)
否则用gcd(x~n−1~,x~n~)代替x~n-1~和x~n~,递归构造解;(将两个数合并成一个)
回溯时调用exgcd(x~n−1~,x~n~),求出相应的a~n-1~,a~n~,使a~n-1~x~n-1~+a~n~x~n~=gcd(x~n-1~,x~n~)
用x~n−1~,x~n~的线性组合替代 (x~n−1~, x~n~)。
2.逆元
若ax≡1(mod b),则称x是a关于模b的逆元,常记做a^−1^。(和a的倒数不同!这里指只要符合ax%b=1就可,也就是说ax的值可以是:1,b+1,···,yb+1(y为任意整数))
上式等价于ax+by=1(ax,by异号)
如何求逆元?
等价于解方程ax+by=1
因此逆元不一定存在,存在的充要条件为gcd(a,b)=1(a,b互质)
推论:如果p是质数,且p不整除a(互质),则a模p的逆元存在。
证明[0,b)的范围内,a关于模b的逆元(整数)(若存在)是唯一的。(ax%b=1)
反证法,若a有两个逆元0<x~1~<x~2~<b
即ax~1~≡ax~2~≡1(mod b)(两积同余1)
那么有b|a(x~2~−x~1~)成立(余数抵消b|(ax~2~-ax~1~))
又由于 (a, b) = 1,因此 b|(x2 − x1。 其中 0 < x2 − x1 < b,产生了矛盾。