1 / 27

Euclidean Algorithm

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

bayle
Download Presentation

Euclidean Algorithm

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Euclidean Algorithm Applied Symbolic Computation CS 567 Jeremy Johnson

  2. Greatest Common Divisors • g = gcd(a,b) • g|a and g|b • e|a and e|b e|g

  3. 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)

  4. Bezout’s Identity • g = gcd(a,b) • x,y: g = ax + by

  5. Bezout’s Identity • g = gcd(a,b) • x,y: g = ax + by

  6. Euclidean Algorithm g = gcd(a,b) if (b = 0) then return a; else return gcd(b,a mod b)

  7. Correctness

  8. Tail Recursion g = gcd(a,b) if (b = 0) then return a; else return gcd(b,a mod b)

  9. Iterative Algorithm g = gcd(a,b) a1 = a; a2 = b; while (a2  0) a3 = a1 mod a2; a1 = a2; a2 = a3; } return a1;

  10. 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

  11. 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).

  12. Bounding Number of Divisions

  13. Fibonacci Numbers • F0 = 0, F1 = 1 • Fn+2= Fn+1 + Fn

  14. Solving the Fibonacci Recurrence • Fn = 1/5(n + * n),  = (1 + 5)/2, * = (1 - 5)/2 • Fn 1/5n+1

  15. Solving the Fibonacci Recurrence

  16. Solving the Fibonacci Recurrence

  17. Maximum Number of Divisions Theorem. The smallest pair of integers that require n divisions to compute their gcd is Fn+2and Fn+1.

  18. 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).

  19. Maximum Number of Divisions

  20. 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;

  21. Correctness

  22. Correctness

  23. Probability of Relative Primality p/d2 = 1  p = 1/(2) (z) = 1/nz (2) = 2/6

  24. Formal Proof Let qn be the number of 1 a,b n such that gcd(a,b) = 1. Then limnqn/n2 = 6/2

  25. Mobius Function • (1) = 1 • (p1   pt) = -1t • (n) = 0 if p2|n (ab) = (a)(b) if gcd(a,b) = 1.

  26. Mobius Inversion d|n (d) = 0 (n(n)ns)(n 1/ns) = 1

  27. Formal Proof qn = n n/k2 limnqn/n2= n (n)n2 = n1/n2 = 6/2

More Related