Loading [MathJax]/jax/element/mml/optable/GeneralPunctuation.js

线性同余方程

如何解方程ax\equiv b({\rm mod}\ m)​呢?因为ax-b|m​, 故令ax-b=-ym​,即ax+my=b​。根据Bezout定理,该方程有解当且仅当\gcd(a,m)|b​。我们把等式两边同乘以\frac{\gcd(a,m)}{b}​,得到ax_0+my_0=\gcd(a, m)​。这个方程可以用扩展欧几里得算法求得得到x_0​。等式是怎么乘的,就再把它除回来,也就是x=x_0\cdot \frac{b}{\gcd(a,m)}​。关于方程的通解,ax+k{\rm lcm}(a,m)+my-k{\rm lcm}(a,m)=b,{\rm lcm}(a,m)=\frac{am}{\gcd(a,m)}​,也就是a(x+k\frac{m}{\gcd(a,m)})+m(y+k\frac{a}{\gcd(a,m)})=b​,所以方程的通解为所有与x​同余\frac{m}{\gcd(a,m)}​的数。若要求最小正整数解,令p=\frac{m}{\gcd(a,m)}​,然后x=(x%p+p)%p即可。 

posted @   headboy2002  阅读(596)  评论(0编辑  收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示