8.线性同余方程
\(ax\equiv{b}(mod\,m)\)
\(x\)的解分为无解,有有限个解的情况
记\(gcd(a,m)=d\)
当\(d\nmid{b}\)时,无解(因为d整除左边而不整除右边)
当\(d\mid{b}\)时,有解。此时考虑\(ax_0+mk_0={gcd(a,m)}\)的解,左右同除以d乘以b,得
\(\frac{abx_0}{d}+\frac{mbk_0}{d}=b\)
故最后\(x=\frac{bx_0}{d}\)
我们要得到所有满足的\(x\),可以考虑先找到最小的,然后算出所有的。
\(x_i=x_{min}+i*\frac{m}{d}\)
故\(x_{min}=(x\,mod\,\frac{m}{d}+\frac{m}{d})\,mod\,\frac{m}{d}\)
代码如下
1 |
|