码迷,mamicode.com
首页 > 其他好文 > 详细

中国剩余定理

时间:2018-07-06 23:26:50      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:根据   整数   方程组   就是   rod   同余   乘法   mod   等于   

蓝书

同余方程组:形如$x_i \equiv a_i(mod\,m_i)$的n个方程(各个$m_i$两两互质;好像$m_i=1$时以下一些会不成立?然而不要紧)

令$M=\prod_{i=1}^n m_i$

令$w_i=M/m_i$

根据各个$m_i$两两互质,可得$w_i$与$m_i$互质

找出$p_i$等于$w_i$关于$m_i$的乘法逆元;则$p_i*w_i \equiv 1(mod\,m_i)$

令$x_0=\sum_{i=1}^n a_i*p_i*w_i$

显然,对于第i个方程,$x_0 \equiv a_i*p_i*w_i \equiv a_i(mod\,m_i)$(因为对于$j!=i$,$w_j \equiv 0(mod\,m_i)$)

得到了一组可行解;则任意解即为$x_0+k*M$,k为任意整数


扩展

各数不互质?

换一种方法:两两合并

现在已知形如$x_i \equiv a_i(mod\,m_i)$的2个方程,$m_i$不需要互质

设$x=k_1*m_1+b_1$,$x=(-k_2)*m_2+b_2$

那么$k_1*m_1+k_2*m_2=b_2-b_1$

可以用exgcd解出$k_1$和$k_2$;当然解出来的是模意义下的解而不是数

因此$x \equiv k_1*m_1+b_1(mod\,lcm(m_1,m_2))$


弃用

用exgcd找出每个$p_i$,使得$p_i*w_i+q_i*m_i=1$(实际上就是$p_i$是$w_i$关于$m_i$的乘法逆元)

那么两边模$m_i$,得到$p_i*w_i \equiv 1(mod\,m_i)$(因为$p_i$,$w_i$都显然不为$m_i$的倍数)

中国剩余定理

标签:根据   整数   方程组   就是   rod   同余   乘法   mod   等于   

原文地址:https://www.cnblogs.com/hehe54321/p/9275611.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!