同余方程组有解的条件
来源:互联网 发布:渥太华大学 知乎 编辑:程序博客网 时间:2024/04/29 22:35
记号与约定:
gcd(a, b):a与b的最大公约数
lcm(a, b):a与b的最小公倍数
x == a (mod m):x与a关于模m同余
x == a1 (mod m1), x == a2 (mod m2)
有解的充要条件是 gcd(m1, m2) | (a1 - a2),并且:
设其中一个特解为x0,则通解为 x = x0 + k * lcm(m1, m2) (k为整数)
-----------------------------------------------------------------------------------------------------------------
命题:用F[i]表示方程 x == a[i] (mod m[i]), 则方程组 F[1..n]有解的充要条件为对所有1 <= i < j <= n,
方程组(F[i], F[j]) 有解。
证明:
当n=3时,
设F[1]与F[2]的特解为x0, 则F[1]与F[2]的通解为:
x = x0 + k * lcm(m[1], m[2]),
带入F[3],有
x0 - a[3] == -k * lcm(m[1], m[2]) (mod m[3])
于是原命题等价转化为:
已知:
gcd(m[i], m[j]) | (a[i] - a[j]) (1 <= i < j <= 3)
m[1] | (x0 - a1)
m[2] | (x0 - a2)
求证:
gcd(lcm(m[1], m[2]), m[3]) | (x0 - a3)
证明:
利用质因数分解,并根据max(min(a, b), c) = min(max(a, c), max(b, c)),立即得
gcd(lcm(a, b), c) = lcm(gcd(a, c), gcd(b, c))
于是求证部分化为:
lcm(gcd(m[1], m[3]), gcd(m[2], m[3])) | (x0 - a3)
∵ m[1] | (x0 - a[1])
∴ gcd(m[1], m[3]) | (x0 - a[1]),
又 gcd(m[1], m[3]) | (a[1] - a[3])
于是
gcd(m[1], m[3]) | (x0 - a[3])
同理,
gcd(m[2], m[3]) | (x0 - a[3])
由以上两式可知
lcm(gcd(m[1], m[3]), gcd(m[2], m[3])) | (x0 - a[3])
证毕
当n >= 4时,
将F[1]与F[2]求解后合并为G: x == b (mod n)
则对于 i >= 3,由于F[1], F[2], F[i]两两有解,得G, F[i]亦有解。
由此可归化为n - 1的情况,其中n - 1个方程为G, F[3], F[4], ..., F[n],
且满足两两有解。
gcd(a, b):a与b的最大公约数
lcm(a, b):a与b的最小公倍数
x == a (mod m):x与a关于模m同余
x == a1 (mod m1), x == a2 (mod m2)
有解的充要条件是 gcd(m1, m2) | (a1 - a2),并且:
设其中一个特解为x0,则通解为 x = x0 + k * lcm(m1, m2) (k为整数)
-----------------------------------------------------------------------------------------------------------------
命题:用F[i]表示方程 x == a[i] (mod m[i]), 则方程组 F[1..n]有解的充要条件为对所有1 <= i < j <= n,
方程组(F[i], F[j]) 有解。
证明:
当n=3时,
设F[1]与F[2]的特解为x0, 则F[1]与F[2]的通解为:
x = x0 + k * lcm(m[1], m[2]),
带入F[3],有
x0 - a[3] == -k * lcm(m[1], m[2]) (mod m[3])
于是原命题等价转化为:
已知:
gcd(m[i], m[j]) | (a[i] - a[j]) (1 <= i < j <= 3)
m[1] | (x0 - a1)
m[2] | (x0 - a2)
求证:
gcd(lcm(m[1], m[2]), m[3]) | (x0 - a3)
证明:
利用质因数分解,并根据max(min(a, b), c) = min(max(a, c), max(b, c)),立即得
gcd(lcm(a, b), c) = lcm(gcd(a, c), gcd(b, c))
于是求证部分化为:
lcm(gcd(m[1], m[3]), gcd(m[2], m[3])) | (x0 - a3)
∵ m[1] | (x0 - a[1])
∴ gcd(m[1], m[3]) | (x0 - a[1]),
又 gcd(m[1], m[3]) | (a[1] - a[3])
于是
gcd(m[1], m[3]) | (x0 - a[3])
同理,
gcd(m[2], m[3]) | (x0 - a[3])
由以上两式可知
lcm(gcd(m[1], m[3]), gcd(m[2], m[3])) | (x0 - a[3])
证毕
当n >= 4时,
将F[1]与F[2]求解后合并为G: x == b (mod n)
则对于 i >= 3,由于F[1], F[2], F[i]两两有解,得G, F[i]亦有解。
由此可归化为n - 1的情况,其中n - 1个方程为G, F[3], F[4], ..., F[n],
且满足两两有解。
- 同余方程组有解的条件
- 解线性同余方程组
- 解线性同余方程组
- 解一次模互质同余方程组
- 解一元线性同余方程组模板
- 解一元线性同余方程组
- HDU1573 X问题 解同余方程组
- HDU3579 Hello Kiki 解同余方程组
- poj2891 扩展欧几里得解同余方程组
- HDU1573X问题 解同余方程组问题
- 扩展欧几里德解同余方程组
- POJ 2891 解线性同余方程组
- 同余方程组问题
- 同余方程组求解
- 【math】同余模方程组
- HDU2185 解高次同余方程组
- 求解线性同余方程组
- 线性同余方程组模板
- SUSE Linux维护笔记三
- Samsung PC Studio 3的短信问题
- hdu 1421 搬寝室
- ORACLE 11g安装图解
- [转载]The Programmer's Bill of Rights
- 同余方程组有解的条件
- 我的OTB经历
- 情人节里的7大攻势
- 入职中企动力一月有感
- Android Wifi Driver Porting
- 编号(长度)为状态的动态规划(LCS,LIS等)
- xz压缩文件
- magento开发 -- 修改当前用户的客户组
- 庆祝my blog开通