8.15 数论 线性同余方程组(crt 与 excrt

偶尔善良 提交于 2019-11-27 09:44:23

crt:

问题:

求解形如:

的方程组

构造思想求解:

构造解 X = x1 + x2 + x3 +......+xn

其中 xi 的构造为  bi * (逆元项)*(消参项)

消参项: 使得 除了xi的其他项xj mod ai == 0

逆元项: 为消参项在mod ai 意义下的逆元 ,使得 bi * (逆元项)*(消参项)mod ai = bi mod ai

则: $$X\equiv b_{i}\  (mod\  a_{i} ) \ , 1\leq i\leq  n $$ ,即满足要求.

不难想到消参项的构造 :

                     $$M_{i} =  \prod_{1}^{n}b / b_{i}$$

又 ,对于通解X,任何    $ X + n*\prod_{1}^{n}b  $ 都是可行解,

所以 ,令 $ t = \prod_{1}^{n}b / b_{i} $ , 则最小正整数解为 $(X\; mod \;t + t ) \;mod\; t$

 

伪代码:

1 → n
0 → ans
for i = 1 to k
    n * n[i] → n
for i = 1 to k
    n / n[i] → m
    inv(m, n[i]) → b               // b * m mod n[i] = 1
    (ans + m * b) mod n → ans
return (ans mod t + t ) mod t

 

excrt:

即上述方程中ai不互质的情况 ,这样的话消参项的构造就不能保证ai本身不会被消了

但这种情况下,模数不互质的同余方程的解是有重叠的,可以用扩展欧几里得定理和线性同余方程的性质进行合并,详见:

https://oi-wiki.org/math/crt/

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!