版权声明:希望有人转(^_^) https://blog.csdn.net/Sunshine_cfbsl/article/details/52573543
对于一些数论专题总是有些晕,还是要多做题(O_O)
所谓线性模方程,就是形如
已知a,b,需要求解最小的x值。
方法如下:
原方程等价于
如果
如果
代码如下:
long long exgcd(long long a, long long b, long long &x, long long &y){
if(!b) {
x = 1;
y = 0;
return a;
}
long long g = exgcd(b, a%b, y, x);
y -= (a/b)*x;
return g;
}
bool liner_mode_equition(long long a, long long &x, long long b, long long n) {
long long x_, y_, d = exgcd(a, n, x_, y_);
if(b % d != 0) return false;
x = (x_ * (b / d)) % n;
return true;
}
就是这么简单(^__^)!