数论部分
扩展GCD 求线性同余方程 ax+by = c(c/gcd(a,b) 是整数时有解,注意a%b = a- a/b * b)
扩展gcd 求逆元(逆元存在的条件就是相应的线性同余方程有解的条件,也就等价于ax = 1 mod n中,a,n互质)
逆元的线性晒法
i* m/i + m%i = 0(mod m)
- i* m/i = m%i ( mod m ) def k = m%i,
- m/i = k *inv[i] (mod m)
inv[i] = -m/i *inv[k] (mod m)
inv[i] =( m-m/i*inv[m%i] ) % m ;
中国剩余定理
x = ai (mod ni),其中ni 两两互质,(i = 1,2,3....)
构造特殊解:想要在满足第一个方程的同时,对后面的几个方程的贡献为0 那就要是第一个方程的解为 n2·n3···nk的倍数,
也就是求 xNi = ai的解(Ni = n1·n2···nk/ni),而这个方程的解可以由 x1Ni = 1的解构造出来(x1*ai 就是原方程的解)
所有的解相加,就得到了原来同余方程组的解。解系模n同余,(任意两个方程相减即可得到x2-x1 有一个因子ni)
线性同余方程还可以通过不断两两合并两个方程得到解;
还有扩展孙子定理可以将n1,n2,... 不是两两互质的化为等价的线性同余方程组,
剩下的坑以后慢慢填