互质数的性质和裴枢定理
两个互质数的线性组合=1必定有解。
即ax + by = 1 (a、b互质, a > b)。
当x=1,y 的值等于某个数时,ax+by的值为 a%b, 设这个数为z
·若a%b = 1, 原表达式成立;
·若a%b != 1, 则 a + bz = a%b,于是 x *(a + bz) = x * (a%b)(ax+by可以表示成a%b的线性组合)
既然ax + by 可以表示成(a%b)的线性组合 , 则 ax + by 可以表示成 a 和 (a%b) 的线性组合 或 b 和 (a%b)的线性组合 或 a、b 和 (a%b)的线性组合。
(经验告诉我们,选第二个啦)
此时问题转化为了b和(a%b)的线性组合 = 1是否有解, 即 bx + (a%b)* y = 1 是否有解,
不停转换下去,因为gcd(a,b) == 1, 最终b 一定 为 1, a%b 一定等于0, 于是此表达式一定有解。
然后裴蜀定理(ax + by = gcd(a,b)一定有解)也就这样被证明了(?!)。
推论:{
(1):
互质数的最小公倍数是这两个数之积,即 lcm(a,b) = a*b。
解释, 由于 a、b互质, 则 ax + by = 1 必定有解, 设两个数的一个公倍数是N,
则 a|N 且 b|N, 于是 (a*b)| (N*b)且(a*b)|(N*a), 于是(a*b)|(x*(N*b)+y*(N*a)),
即(a*b)|(N*(ax + by)), 而ax + by 的最小值(非零)为1, 于是(a*b)|N,这意味着
a、b的公倍数是(a*b)的倍数, (a*b)的最小倍数(非零)是 1, 则a、b的最小公倍数是 a*b。
}
下一篇: C语言求组合数
推荐阅读