线性同余方程
介绍¶
形如
求解方法¶
根据以下两个定理,我们可以求出同余方程
定理 1:
方程
与方程 ax+by=c 是等价的,有整数解的充要条件为 ax \equiv c \pmod b 。 \gcd(a,b) \mid c
根据定理 1,方程
定理 2:
若
,且 \gcd(a,b)=1 为方程 x_0,y_0 的一组解,则该方程的任意解可表示为: ax+by=c , 且对任意整数 x=x_0+bt,y=y_0+at 都成立。 t
根据定理 2,可以求出方程的所有解。但在实际问题中,我们往往被要求求出一个最小整数解,也就是一个特解
代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | 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; } |
build本页面最近更新:,更新历史
edit发现错误?想一起完善? 在 GitHub 上编辑此页!
people本页面贡献者:
copyright本页面的全部内容在 CC BY-SA 4.0 和 SATA 协议之条款下提供,附加条款亦可能应用