整理下学过的数论知识
逆元
满足(a imes xequiv 1pmod p) 则x为a在模p意义下的逆元 也就是(a^{-1})
线性求逆元:
令 (p = k imes i + r)
即(k imes i+requiv 0pmod p)
两边同乘(i^{-1} imes r^{-1})
则有(k imes r^{-1} + i^{-1} equiv 0)
移项 得(i^{-1} equiv -k imes r^{-1})
所以(i^{-1} equiv -frac{p}{i} imes (p\% i)^{-1})
费马小定理求逆元
(a^{p-1} equiv 1 pmod p)
前提:a与p互质 且 p为素数
所以要求a的逆元用快速幂去求(a^{p-1}) 就可以了
证明:
引理1: 若(a*b equiv a*c pmod p) 且((a,p) = 1) 则有(b equiv c pmod p)
证明:
(a*b equiv a*c pmod p)
(a*b - a * c equiv 0 pmod p)
(a*(b-c) equiv 0 pmod p)
因为((a,p) = 1)
所以(b-c equiv 0 pmod p)
(b equiv c pmod p)
引理2: 若mod为大于1的整数,((m,b) = 1) ,a[1],a[2]...,a[m]为模m的一个完全剩余系 则有(b*a[1],b*a[2],b*a[3]...b*a[m]) 也为模m的一个完全剩余系
证明:
反证,假设有(b*a[1]equiv b*a[2] pmod p),则有引理1知(a[1] equiv a[2]) ,与定义冲突,故假设不成立
由以上两引理:
构造p的完全剩余系 (1,2,3...,p-1)
因为((a,p)=1)
所以(a,2a,3a,4a...,(p-1)*a) 也是p的完全剩余系
由完全剩余系性质:
(1*2*3...*(p-1) equiv a * 2a * 3a... *(p-1)a)
即((p-1)! equiv a^{p-1}*(p-1)! pmod p)
又因为p为素数
所以((p-1)!)可以直接消掉
故(a^{p-1} equiv 1 pmod p)
欧拉函数通项公式
首先证明若(n = p^k) 则(varphi(n) = p^k-p^{k-1}, pin prime)
显然有除了(p^i),其它项都与(p^k)互质
所以原式成立
对于任一整数,求(varphi(n) = n * prod(1-frac{1}{p}))
首先一定可以把n分解为(n = prod p_i^{k_i})
假定A,B是与m,n,mn互质的数集, 那么A*B 与 C满足一一对应的关系 (中国剩余定理
那么显然有(varphi(n) = prod p^k - p^{k-1})
把所有(p^k)提出 得到
(varphi(n) = n prod (1 - frac{1}{p}))
gcd
关于辗转相除正确性证明
也就是证明((a,b) = (b,a\% b))
令((a,b) = d,a = b*k+r)
((b,b* k+r) = d)
则有(d|a,d|{a*k+r})
故(d|r)
又(r=a \% b)
所以((r,b) = d) 原式得证
exgcd
求解(ax+by = gcd(a,b))
则相当于求解(bx+a\% b *y = gcd(b,a\%b))
对于这个式子显然可以一直递归 递归到(b=0)的时候有(x=1,y=0)
那么考虑如何回代,即由当前层求出上一层的(x,y)
(ax+by = gcd(a,b) = gcd(b,a\%b) = bx' + a\%b * y')
那么有(ax+by = bx'+a\%b * y')
(bx' + a\%b * y' = bx' + (a-frac{a}{b}*b )* y')
(ax + by = ay' + b(x'-frac{a}{b} * y))
(x = y' , y = (x'-frac{a}{b}* y))
然后一直回代就可以求解了
CRT
求解方程组
(x equiv a_1 pmod {m_1})
(x equiv a_2 pmod {m_2})
(x equiv a_3 pmod {m_3})
(x equiv a_4 pmod {m_4})
...
(x equiv a_i pmod {m_i})
满足(m_i)与(m_j) 互质((i!=j))
首先把所有(m)乘起来为Mod
然后依次去跑每一个方程
求解方程(frac{Mod}{m_i}*x equiv a_i pmod {m_i}) 并将此时的(frac{Mod}{m_i}*x) 作为该方程的解
考虑这个方程的解具有什么性质
因为(Mod) 是所有模数乘起来得到的 所以当前解一定模其它任一膜数都为0
此时它满足要求的原方程的解的性质
有一个很显然的公式是(a + b equiv c pmod P)
如果(a\% P = 0)
那么有(b \%P = c)
所以把所有方程的解加在一起正好满足所有方程
令最后的答案(\%)掉(Mod) 得到最小解