- 浏览: 120375 次
- 性别:
- 来自: 北京
最新评论
Generalized Chinese Remainder Theorem
来源:http://www.cut-the-knot.org/blue/chinese.shtml (IE only)
Theorem 1
Two simultaneous congruences
n = n1 (mod m1) and
n = n2 (mod m2)
are only solvable when n1 = n2 (mod gcd(m1, m2)). The solution is unique modulo lcm(m1, m2).
(When m1 and m2 are coprime their gcd is 1. By convention, a = b (mod 1) holds for any a and b.)
Proof
By a generalization of the Euclid's algorithm, there are integers s and t such that
tm1 + sm2 = gcd(m1, m2).
Since n2 - n1 = 0 (mod gcd(m1, m2)), for some, possibly different t and s,
(2) tm1 + sm2 = n2 - n1.
Then n = tm1 + n1 = -sm2 + n2 satisfies both congruences in the theorem. This proves the existence of a solution.
To prove the uniqueness part, assume n and N satisfy the two congruences. Taking the differences we see that
N - n = 0 (mod m1) and N - n = 0 (mod m2)
which implies N - n = 0 (mod lcm(m1, m2)).
As was previously stated, a more general theorem can now be proved by induction.
Theorem 2
The simultaneous congruences (1)
n = n1 (mod m1)
n = n2 (mod m2)
...
n = nk (mod mk)
are only solvable when ni = nj (mod gcd(mi, mj)), for all i and j, i ≠ j. The solution is unique modulo lcm(m1, m2, ..., mk).
具体算法:
update: 算法艺术与信息学竞赛第230页有讲解,很清晰
update2: 题目hdu1930 hdu1370 jlu1167
来源:http://www.cut-the-knot.org/blue/chinese.shtml (IE only)
Theorem 1
引用
Two simultaneous congruences
n = n1 (mod m1) and
n = n2 (mod m2)
are only solvable when n1 = n2 (mod gcd(m1, m2)). The solution is unique modulo lcm(m1, m2).
(When m1 and m2 are coprime their gcd is 1. By convention, a = b (mod 1) holds for any a and b.)
Proof
引用
By a generalization of the Euclid's algorithm, there are integers s and t such that
tm1 + sm2 = gcd(m1, m2).
Since n2 - n1 = 0 (mod gcd(m1, m2)), for some, possibly different t and s,
(2) tm1 + sm2 = n2 - n1.
Then n = tm1 + n1 = -sm2 + n2 satisfies both congruences in the theorem. This proves the existence of a solution.
To prove the uniqueness part, assume n and N satisfy the two congruences. Taking the differences we see that
N - n = 0 (mod m1) and N - n = 0 (mod m2)
which implies N - n = 0 (mod lcm(m1, m2)).
As was previously stated, a more general theorem can now be proved by induction.
Theorem 2
引用
The simultaneous congruences (1)
n = n1 (mod m1)
n = n2 (mod m2)
...
n = nk (mod mk)
are only solvable when ni = nj (mod gcd(mi, mj)), for all i and j, i ≠ j. The solution is unique modulo lcm(m1, m2, ..., mk).
具体算法:
首先以两个同余方程组成的方程组为例: n = n1 (mod m1) and n = n2 (mod m2) 有解的前提条件是gcd(m1, m2) | (n2 - n1) 1) 用扩展欧几里德算法计算t * m1 + s * m2 = gcd(m1, m2) = d 2) 计算tt, ss使其满足tt * m1 + ss * m2 = n2 - n1 具体方法是tt = t * (n2 - n1) / d,ss = s * (n2 - n1) / d 3) 那么nn = tt * m1 + n1 = -ss * m2 + n2 (这两个用哪个都行) 4) 我们已经把两个同余方程组变成了一个: n = nn (mod LCM(m1, m2)) 重复这个过程,每次合并两个方程,就可以解决整个方程组了
update: 算法艺术与信息学竞赛第230页有讲解,很清晰
update2: 题目hdu1930 hdu1370 jlu1167
发表评论
-
lower_bound and upper_bound
2012-02-09 00:36 1180/** * @brief Finds the ... -
HDU 3954
2012-02-05 10:43 861线段树变种,也是在2logn段上面做文章 /* * ... -
HDU 4027
2012-02-04 22:09 883线段树变种 在2logn段上面做文章,swap(x, y)太阴 ... -
ICPC编码建议
2011-10-28 09:52 934写代码最重要的是清晰,包括思路的清晰和代码结构的清晰。我们无法 ... -
[转载]TopCoder插件
2011-09-08 22:13 1005转载自:http://acm.cugb.edu.cn/blog ... -
UVALive 5112 - Sales Prediction
2011-01-06 10:19 1218封装了矩阵类 比赛做得很郁闷,为什么别人写得很长、很罗嗦的代码 ... -
hdu 3236
2010-12-12 14:10 823终于能过这道题了,算是背包必做题之一吧 /* * Au ... -
pku 1018
2010-12-11 15:18 643写了两三个版本,最后这个效率最高 #include < ... -
布斯(Booth)乘法
2010-10-07 19:59 1167源自http://watashi.ws/blog/1515/z ... -
高斯消元
2010-10-07 14:18 831import java.util.*; import j ... -
整数划分
2010-10-07 10:38 856#include <cstdio> #inc ... -
Treap
2010-09-18 22:19 1001// Treap // Tested: bjtu1057 ... -
矩阵快速幂
2010-09-18 14:24 1069typedef LL matrix[55][55]; ... -
maximum clique 最大团
2010-09-02 18:12 1164最大团模板 #include <cstdio> ... -
计算Jacobi符号
2010-08-31 13:15 1330Quadratic reciprocity The Jacob ... -
Java 高效I/O
2010-08-19 16:54 804static BufferedReader cin = ... -
DLX pku 3076
2010-08-11 23:45 916标准数独,精确覆盖 // pku3076.cpp #in ... -
DLX hust 1017
2010-08-11 16:50 876“精确覆盖”问题 #include <cstdio& ... -
DLX hdu 3498
2010-08-11 16:48 1077“多重覆盖”或“重复覆盖”问题 #include < ... -
hdu 3509
2010-08-09 11:22 1022推导公式的题目,矩阵幂关键就在于构造系数矩阵 备忘: S(n, ...
相关推荐
### 广义中国剩余定理及其Maple解法 #### 概述 本文探讨了广义中国剩余定理的应用以及如何使用Maple软件求解该定理中的问题。传统中国剩余定理要求模数两两互素,但在实际应用中,这种限制可能会带来不便。因此,广义...
对于不要求模两两互素的一次同余式给出了相应的广义中国剩余定理及其程序解法。且计算速度快,尤其当模数很大时其高效性更加明显。
### 基于中国剩余定理的理想秘密共享方案构建 #### 概述 自1979年,阿多纳姆·莎米尔(Adi Shamir)和乔治·布拉克利(George Blakley)分别提出了(t, n)阈值秘密共享(Secret Sharing, SS)的概念以来,这种技术已经在...
此外,还可以扩展到更复杂的情况,如多变量的中国剩余定理或者广义的中国剩余定理。 总之,MATLAB作为一种强大的工具,使得我们能够轻松地探索和应用像中国剩余定理这样的高级数学概念。通过实践和理解这些算法,...
通常,标题“环Z_k上中国积码”表明这篇研究论文很可能关注数学编码理论中的中国剩余定理(Chinese Remainder Theorem, CRT)或其在环结构中的相关应用。环Z_k可能指的是模k整数环(即整数模k的剩余类构成的环)。...
3. **基于中国剩余定理的方法**:这种方法利用2阶分圆类和中国剩余定理来构建几乎差集,并据此得到周期为\(T = 4v\)(其中\(v \equiv 3(\mod 4)\))的理想二进制序列。此外,还可以通过结合一个完备二进制序列和任意...
文章提出了两种基于分圆术、离散对数函数和中国剩余定理的新序列集,并证明了这些序列集达到了Peng-Fan-Lee界限,即它们是最优的。 综上所述,文章提出的新型跳频序列集,是通过数学理论与通信技术相结合的方法来...
#### 3.4 中国剩余定理 - **中国剩余定理**: 解决了一组同余方程组的解的问题,该定理在密码学中有着广泛的应用。 #### 3.5 二次同余与原根 - **二次同余**: 形式为\(x^2 \equiv a \mod p\)的同余方程,其中\(p\)是...
通过中国剩余定理,将大的模数m分解为其因子的乘积,然后分别解每个模的小同余方程,最后合并结果得到原同余方程组的解。 五、该题要求解满足2^x ≡ 5 (mod 7)的x值。通过逐个尝试x的值,我们可以找到满足条件的y值...
在研究中,作者通过中国剩余定理(Chinese Remainder Theorem)和Zp上的“高斯周期”来计算Z2p2上的“高斯周期”。高斯周期是数论中的一个重要概念,它们在计算2-Adic复杂度时起到关键作用,因为它们可以帮助构建和...
- 中国剩余定理、数论逆元、费马小定理等高级理论; - 大数判断算法、数论函数等实用技巧。 - **组合论**: - 多重组合排列、广义容斥定理、一类鸽巢原理等基本概念; - 莫比乌斯反演、Lucas定理、Catalan ...
- 数论:质因数分解、模运算、中国剩余定理。 - 广义欧几里得算法:求最大公约数和扩展欧几里得算法。 6. **逻辑思维与问题解决**: - 熟练阅读题目,理解题目要求,正确设定问题模型。 - 创造性地应用已知算法...
秦九韶算法,也称为中国剩余定理,是数论中的一个重要结果,用于解决同余方程组的问题。在现代密码学中,如RSA加密算法的实现,秦九韶算法有关键的应用。 以上算法的实现均在"C经典算法集"中,使用C语言编写,具有...
为了实现GGAS,文章设计了一种基于中国剩余定理(Chinese Remainder Theorem, CRT)的秘密图像共享方案。 中国剩余定理是一种在模运算下的定理,它可以在多个互质模数的同余方程组中找到一个解。在秘密图像共享领域...
由于字数限制,下面是剩余的内容: ... ... 1.71 谁通过实验证明了光速在不同惯性系和不同方向上都是相同的? 答案:C 迈克尔逊 知识点:迈克尔逊是一个美国物理学家,他通过实验证明了光速在不同惯性系和不同...
- **中国剩余定理**: 提供了解决一系列同余方程的方法,其中模数两两互质。 #### §2.5 Systems of linear congruences - **线性同余方程组**: 多个线性同余方程的集合,通常求解它们的公共解。 #### §2.6 Some ...
在数学领域,演绎法是证明定理和解题的基石,而在日常生活中,我们也会不由自主地使用演绎法来对情况进行推理和判断。 ### 编程语言比例与版本发布 在描述中提到的“演绎法的求证”项目,包含了179个文件共计12万8...
信息安全数学数论部分计算程序,主要的计算几乎全有。 信息安全数学数论部分计算程序,主要的计算几乎全有。 信息安全数学数论部分计算程序,主要的计算几乎全有。 信息安全数学数论部分计算程序,主要的计算几乎...