0 MathBasics
中国剩余定理
引入
「物不知数」问题:有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二。问物几何?
即求满足以下条件的整数:除以 余 ,除以 余 ,除以 余 。
该问题最早见于《孙子算经》中,并有该问题的具体解法。宋朝数学家秦九韶于 1247 年《数书九章》卷一、二《大衍类》对「物不知数」问题做出了完整系统的解答。上面具体问题的解答口诀由明朝数学家程大位在《算法统宗》中给出:
三人同行七十希,五树梅花廿一支,七子团圆正半月,除百零五便得知。
,故答案为 。
定义
中国剩余定理 (Chinese Remainder Theorem, CRT) 可求解如下形式的一元线性同余方程组(其中 两两互质):
上面的「物不知数」问题就是一元线性同余方程组的一个实例。
过程
- 计算所有模数的积 ;
- 对于第 个方程:
- 计算 ;
- 计算 在模 意义下的 逆元 ;
- 计算 (不要对 取模)。
- 方程组在模 意义下的唯一解为:。
实现
证明
我们需要证明上面算法计算所得的 对于任意 满足 。
当 时,有 ,故 。又有 ,所以我们有:
即对于任意 ,上面算法得到的 总是满足 ,即证明了解同余方程组的算法的正确性。
因为我们没有对输入的 作特殊限制,所以任何一组输入 都对应一个解 。
另外,若 ,则总存在 使得 和 在模 下不同余。
故系数列表 与解 之间是一一映射关系,方程组总是有唯一解。
解释
下面演示 CRT 如何解「物不知数」问题。
- ;
- 三人同行 七十 希:,故 ;
- 五树梅花 廿一 支:,故 ;
- 七子团圆正 半月:,故 ;
- 所以方程组的唯一解为 。(除 百零五 便得知)
例题:
Status
Problem
Tags