线性同余方程
介绍¶
形如
求解方法¶
根据以下两个定理,我们可以求出同余方程
定理 1:方程
根据定理 1,方程
定理 2:若
根据定理 2,可以求出方程的所有解。但在实际问题中,我们往往被要求求出一个最小整数解,也就是一个特解
代码实现
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | // C++ Version
int ex_gcd(int a, int b, int& x, int& y) {
if (b == 0) {
x = 1;
y = 0;
return a;
}
int d = ex_gcd(b, a % b, x, y);
int temp = x;
x = y;
y = temp - a / b * y;
return d;
}
bool liEu(int a, int b, int c, int& x, int& y) {
int d = ex_gcd(a, b, x, y);
if (c % d != 0) return 0;
int k = c / d;
x *= k;
y *= k;
return 1;
}
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | # Python Version
def ex_gcd(a, b ,x, y):
if b == 0:
x = 1; y = 0
return a
d = ex_gcd(b, a % b, x, y)
temp = x
x = y
y = temp - a // b * y
return d
def liEu(a, b, c, x, y):
d = ex_gcd(a, b, x, y)
if c % d != 0:
return 0
k = c // d
x = x * k
y = y * k
return 1
|
build本页面最近更新:,更新历史
edit发现错误?想一起完善? 在 GitHub 上编辑此页!
people本页面贡献者:OI-wiki
copyright本页面的全部内容在 CC BY-SA 4.0 和 SATA 协议之条款下提供,附加条款亦可能应用