euclidean algorithm
DESCRIPTION
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 - PowerPoint PPT PresentationTRANSCRIPT
Euclidean Algorithm
Applied Symbolic ComputationCS 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 pt
et
• b = p1f1 pt
ft
• gcd(a,b) = p1min(e1,f1) pt
min(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)
Correctness
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 = ba1 = 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).
Bounding Number of Divisions
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
Solving the Fibonacci Recurrence
Solving the Fibonacci Recurrence
Maximum Number of Divisions
Theorem. The smallest pair of integers that require n divisions to compute their gcd is Fn+2 and 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).
Maximum Number of Divisions
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;
Correctness
Correctness
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 limn qn/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
limn qn/n2 = n (n)n2 = n 1/n2 = 6/2