以前可能看过,不过真的记不得了,特记录一下,可能不严密,仅供自己理解。
求gcd(a, b),欲证gcd(a, b) = gcd(b, a % b)
设d1 = gcd(a, b), d2 = gcd(b, a % b), a > b且a = qb + r
只需证d1 | d2并且d2 | d1。
因为d2 | b, d2 | r, 因此d2 | (b + qr) = a,根据d2 | b且d2 | a有d2 | gcd(a, b),即d2 | d1。
因为d1 | a, d1 | b, 因此d1 | (a - qb) = r,根据d1 | b且d1 | r有d1 | gcd(b, r),即d1 | d2。
根据Euclid算法执行过程,gcd(a, b) = gcd(b, r) = gcd(r, b % r) = ... = gcd(rn, rn-1 % rn),如果rn-1 % rn = 0,根据gcd(a, 0) = a,有gcd(a, b) = rn,证毕。
貌似偏序关系上证a = b很多都是利用反对称性,比如a >= b并且b >= a则a = b,或者a | b并且b | a则a = b,一个很常用且强大的方法。
posted on 2010-04-24 21:29
sdfond 阅读(232)
评论(0) 编辑 收藏 引用 所属分类:
Algorithm - Number Theory