标签:strong 剩余定理 要求 str 直接 mat 同余 math 好用
简单记录一下推倒过程吧。
搞这种方程的。
\(x\%m_1=c_1,x\%m_2=c_2,x\%m_3=c_3..........\)
先来表演,将两个方程合并:
\(x\%m_1=c_1\), \(x\%m_2=c_2\)
Duang!Duang!
\(x=k_1m_1+c_1=k_2m_2+c_2\)
\(k_1m_1-k_2m_2=c_2-c_1\)
令\(g=gcd(m_1,m_2)\),有\(k_1\frac{m_1}{g}-k_2\frac{m_2}{g} = \frac{c_2-c_1}{g}\)
在模\(\frac{m_2}{g}\)系下:\(\frac{m_1}{g}k_1= \frac{c_2-c_1}{g}\)
解得\(k_1=\frac{c_2-c_1}{g}*inv(\frac{m_1}{g},\frac{m_2}{g}) + k\frac{m_2}{g}\)
即\(x=[\frac{c_2-c_1}{g}*inv(\frac{m_1}{g},\frac{m_2}{g}) m_1+c_1]+k\frac{m_1m_2}{g}\)
好了,两个同余方程就这么合并了。然后我们对于那\(n\)个方程合并\(n-1\)次,就是EXCRT了
emmm. 同余方程的合并和生成树这种东西,是不是可以珠联璧合。然后搞出什么有趣的东西啊。
这个一点也不好用,还得保证\(m_1,m_2...\)两两互质。
有种暴力构造的感觉。
直接给答案啦\(x=\sum c_i\frac{M}{m_i}inv(\frac{M}{m_i},m_i)\)
因为在模\(m_i\)系下\(\frac{M}{m_i}inv(\frac{M}{m_i},m_i)=1\)
所以当且仅当\(i=x\)时,\(c_i\frac{M}{m_i}inv(\frac{M}{m_i},m_i)\%m_x=c_x\),否则\(c_i\frac{M}{m_i}inv(\frac{M}{m_i},m_i)\%m_x=0\)
问:为什么要求两两互质啊?
答:不互质,求个锤子逆元吖!
标签:strong 剩余定理 要求 str 直接 mat 同余 math 好用
原文地址:https://www.cnblogs.com/RUSH-D-CAT/p/9736224.html