270 likes | 523 Views
Euclidean Algorithm. Applied Symbolic Computation CS 567 Jeremy Johnson. Greatest Common Divisors. g = gcd ( a,b ) g |a and g|b e|a and e|b e|g. Unique Factorization. p |ab p|a or p|b a = p 1 p t = q 1 q s s = t and i j: p i = q j
E N D
Euclidean Algorithm Applied Symbolic Computation CS 567 Jeremy Johnson
Greatest Common Divisors • g = gcd(a,b) • g|a and g|b • e|a and e|b e|g
Unique Factorization • p|ab p|a or p|b • a = p1 pt = q1 qs s = t and i j: pi=qj • a = p1e1 ptet • b = p1f1 ptft • gcd(a,b) = p1min(e1,f1) ptmin(et,ft)
Bezout’s Identity • g = gcd(a,b) • x,y: g = ax + by
Bezout’s Identity • g = gcd(a,b) • x,y: g = ax + by
Euclidean Algorithm g = gcd(a,b) if (b = 0) then return a; else return gcd(b,a mod b)
Tail Recursion g = gcd(a,b) if (b = 0) then return a; else return gcd(b,a mod b)
Iterative Algorithm g = gcd(a,b) a1 = a; a2 = b; while (a2 0) a3 = a1 mod a2; a1 = a2; a2 = a3; } return a1;
Remainder Sequence a1 = a, a2 = b a1 = q3 a2 + a3, 0 a3 < a2 ai= qi ai+1+ ai+2, 0 ai+2< ai+1 an= qn an+1 gcd(a,b) = an+1
Bounding Number of Divisions Theorem. Let a b 0 and n = number of divisions required by the Euclidean algorithm to compute gcd(a,b). Then n < 2lg(a).
Fibonacci Numbers • F0 = 0, F1 = 1 • Fn+2= Fn+1 + Fn
Solving the Fibonacci Recurrence • Fn = 1/5(n + * n), = (1 + 5)/2, * = (1 - 5)/2 • Fn 1/5n+1
Maximum Number of Divisions Theorem. The smallest pair of integers that require n divisions to compute their gcd is Fn+2and Fn+1.
Maximum Number of Divisions Theorem. Let a b 0 and n = number of divisions required by the Euclidean algorithm to compute gcd(a,b). Then n < 1.44 lg(a).
Extended Euclidean Algorithm g = gcd(a,b,*x,*y) a1 = a; a2 = b; x1 = 1; x2 = 0; y1 = 0; y2 = 1; while (a2 0) a3 = a1 mod a2; q = floor(a1/a2); x3 = x1 – q*x2; y3 = y1 – q*y2; a1 = a2; a2 = a3; x1 = x2; x2 = x3; y1 = y2; y2 = y3; } return a1;
Probability of Relative Primality p/d2 = 1 p = 1/(2) (z) = 1/nz (2) = 2/6
Formal Proof Let qn be the number of 1 a,b n such that gcd(a,b) = 1. Then limnqn/n2 = 6/2
Mobius Function • (1) = 1 • (p1 pt) = -1t • (n) = 0 if p2|n (ab) = (a)(b) if gcd(a,b) = 1.
Mobius Inversion d|n (d) = 0 (n(n)ns)(n 1/ns) = 1
Formal Proof qn = n n/k2 limnqn/n2= n (n)n2 = n1/n2 = 6/2