3 Gallon Jug5 Gallon Jug Greatest Common Divisor Lecture 8: Sep 30.

Slides:



Advertisements
Similar presentations
1 Lect. 12: Number Theory. Contents Prime and Relative Prime Numbers Modular Arithmetic Fermat’s and Euler’s Theorem Extended Euclid’s Algorithm.
Advertisements

Mathematical Induction II Lecture 14: Nov
Primality Testing Patrick Lee 12 July 2003 (updated on 13 July 2003)
Sets, Combinatorics, Probability, and Number Theory Mathematical Structures for Computer Science Chapter 3 Copyright © 2006 W.H. Freeman & Co.MSCS Slides.
CSE 311 Foundations of Computing I Lecture 13 Number Theory Autumn 2012 CSE
Chapter Primes and Greatest Common Divisors ‒Primes ‒Greatest common divisors and least common multiples 1.
Greatest Common Divisor. Definitions Let a and b be two non-zero integers. The greatest common divisor of a and b, denoted gcd(a,b) is the largest of.
Basic properties of the integers
CNS2010handout 8 :: introduction to number theory1 computer and network security matt barrie.
Induction Sections 41. and 4.2 of Rosen Fall 2008 CSCE 235 Introduction to Discrete Structures Course web-page: cse.unl.edu/~cse235 Questions:
Elementary Number Theory and Methods of Proof. Basic Definitions An integer n is an even number if there exists an integer k such that n = 2k. An integer.
Induction Sections 4.1 and 4.2 of Rosen Fall 2010
Chapter 4 Properties of the integers: mathematical induction Yen-Liang Chen Dept of IM NCU.
Chapter II. THE INTEGERS
6/20/2015 5:05 AMNumerical Algorithms1 x x1x
Inverses and GCDs Supplementary Notes Prepared by Raymond Wong
Discrete Structures Chapter 2 Part B Mathematical Induction
The essential quality of a proof is to compel belief.
Great Theoretical Ideas in Computer Science.
Properties of the Integers: Mathematical Induction
CSE 311 Foundations of Computing I Lecture 12 Primes, GCD, Modular Inverse Spring
CS555Spring 2012/Topic 61 Cryptography CS 555 Topic 6: Number Theory Basics.
Divisibility October 8, Divisibility If a and b are integers and a  0, then the statement that a divides b means that there is an integer c such.
Great Theoretical Ideas in Computer Science.
Chapter 2 The Fundamentals: Algorithms, the Integers, and Matrices
1 Properties of Integers Objectives At the end of this unit, students should be able to: State the division algorithm Apply the division algorithm Find.
9/2/2015Discrete Structures1 Let us get into… Number Theory.
COMP 170 L2 Page 1 L05: Inverses and GCDs l Objective: n When does have an inverse? n How to compute the inverse? n Need: Greatest common dividers (GCDs)
Module :MA3036NI Cryptography and Number Theory Lecture Week 7
Modular Arithmetic.
Greatest Common Divisor
1 Introduction to Abstract Mathematics Chapter 3: Elementary Number Theory and Methods of Proofs Instructor: Hayk Melikya Direct.
The Integers. The Division Algorithms A high-school question: Compute 58/17. We can write 58 as 58 = 3 (17) + 7 This forms illustrates the answer: “3.
CompSci 102 Discrete Math for Computer Science
Chinese Remainder Theorem Dec 29 Picture from ………………………
Chapter 2 (Part 1): The Fundamentals: Algorithms, the Integers & Matrices The Integers and Division (Section 2.4)
CSE 311: Foundations of Computing Fall 2014 Lecture 12: Primes, GCD.
MA/CSSE 473 Day 06 Euclid's Algorithm. MA/CSSE 473 Day 06 Student Questions Odd Pie Fight Euclid's algorithm (if there is time) extended Euclid's algorithm.
Foundations of Discrete Mathematics Chapter 4 By Dr. Dalia M. Gil, Ph.D.
MA/CSSE 473 Day 08 Extended Euclid's Algorithm Modular Division Fermat's little theorem.
Tuesday’s lecture: Today’s lecture: One-way permutations (OWPs)
Application: Algorithms Lecture 20 Section 3.8 Wed, Feb 21, 2007.
Greatest Common Divisors & Least Common Multiples  Definition 4 Let a and b be integers, not both zero. The largest integer d such that d|a and d|b is.
AF2. Turn off your phones Primes, gcd, some examples, reading.
CSE 311: Foundations of Computing Fall 2013 Lecture 12: Primes, GCD, modular inverse.
Cryptography Lecture 14 Arpita Patra © Arpita Patra.
AF2. Turn off your phones Primes, gcd, some examples, reading.
1 Discrete Structures – CNS2300 Text Discrete Mathematics and Its Applications Kenneth H. Rosen (5 th Edition) Chapter 2 The Fundamentals: Algorithms,
The Fundamentals: Algorithms, Integers, and Matrices CSC-2259 Discrete Structures Konstantin Busch - LSU1.
Chapter 4 With Question/Answer Animations 1. Chapter Summary Divisibility and Modular Arithmetic - Sec 4.1 – Lecture 16 Integer Representations and Algorithms.
Number Theory Lecture 1 Text book: Discrete Mathematics and its Applications, 7 th Edition.
Great Theoretical Ideas in Computer Science.
MA/CSSE 473 Day 07 Extended Euclid's Algorithm Modular Division Fermat's little theorem intro.
Discrete Mathematics Chapter 2 The Fundamentals : Algorithms, the Integers, and Matrices. 大葉大學 資訊工程系 黃鈴玲.
Fuw-Yi Yang1 Textbook: Introduction to Cryptography 2nd ed. By J.A. Buchmann Chap 1 Integers Department of Computer Science and Information Engineering,
Agenda Review:  Relation Properties Lecture Content:  Divisor and Prime Number  Binary, Octal, Hexadecimal Review & Exercise.
If more pigeons than pigeonholes, Pigeonhole Principle.
B504/I538: Introduction to Cryptography
MA/CSSE 473 Day 06 Euclid's Algorithm.
Advanced Algorithms Analysis and Design
Greatest Common Divisor
MATH301- DISCRETE MATHEMATICS Copyright © Nahid Sultana Dr. Nahid Sultana Chapter 4: Number Theory and Cryptography.
Number Theory and Modular Arithmetic
CSE 20: Discrete Mathematics for Computer Science Prof. Shachar Lovett
Number Theory (Chapter 7)
Great Theoretical Ideas in Computer Science
Computational Processes
Topic 6: Number Theory Basics
Copyright © Zeph Grunschlag,
Divisibility and Modular Arithmetic
Presentation transcript:

3 Gallon Jug5 Gallon Jug Greatest Common Divisor Lecture 8: Sep 30

c is a common divisor of a and b means c|a and c|b. gcd(a,b) ::= the greatest common divisor of a and b. Common Divisors Say a=8, b=10, then 1,2 are common divisors, and gcd(8,10)=2. Say a=3, b=11, then the only common divisor is 1, and gcd(3,11)=1. Claim. If p is prime, and p does not divide a, then gcd(p,a) = 1. Say a=10, b=30, then 1,2,5,10 are common divisors, and gcd(10,30)=10.

For b > 0 and any a, there are unique numbers q ::= quotient(a,b), r ::= remainder(a,b), such that a = qb + r and 0  r < b. The Quotient-Remainder Theorem When b=2, this says that for any a, there is a unique q such that a=2q or a=2q+1. When b=3, this says that for any a, there is a unique q such that a=3q or a=3q+1 or a=3q+2. We also say q = a div b and r = a mod b.

For b > 0 and any a, there are unique numbers q ::= quotient(a,b), r ::= remainder(a,b), such that a = qb + r and 0  r < b. 0 b 2b kb (k+1)b Given any b, we can divide the integers into many blocks of b numbers. For any a, there is a unique “position” for a in this line. q = the block where a is in a r = the offset in this block Clearly, given a and b, q and r are uniquely defined. -b The Quotient-Remainder Theorem

Greatest Common Divisors Given a and b, how to compute gcd(a,b)? Can try every number, but can we do it more efficiently? Let’s say a>b. 1.If a=kb, then gcd(a,b)=b, and we are done. 2.Otherwise, by the Division Theorem, a = qb + r for r>0.

Greatest Common Divisors Let’s say a>b. 1.If a=kb, then gcd(a,b)=b, and we are done. 2.Otherwise, by the Division Theorem, a = qb + r for r>0. Euclid: gcd(a,b) = gcd(b,r)! a=12, b=8 => 12 = gcd(12,8) = 4 a=21, b=9 => 21 = 2x9 + 3gcd(21,9) = 3 a=99, b=27 => 99 = 3x gcd(99,27) = 9 gcd(8,4) = 4 gcd(9,3) = 3 gcd(27,18) = 9

Euclid’s GCD Algorithm Euclid: gcd(a,b) = gcd(b,r) gcd(a,b) if b = 0, then answer = a. else write a = qb + r answer = gcd(b,r) a = qb + r

gcd(a,b) if b = 0, then answer = a. else write a = qb + r answer = gcd(b,r) Example 1 GCD(102, 70) 102 = = GCD(70, 32) 70 = 2x = GCD(32, 6) 32 = 5x6 + 2 = GCD(6, 2) 6 = 3x2 + 0 = GCD(2, 0) Return value: 2.

gcd(a,b) if b = 0, then answer = a. else write a = qb + r answer = gcd(b,r) Example 2 GCD(252, 189) 252 = 1x = GCD(189, 63) 189 = 3x = GCD(63, 0) Return value: 63.

gcd(a,b) if b = 0, then answer = a. else write a = qb + r answer = gcd(b,r) Example 3 GCD(662, 414) 662 = 1x = GCD(414, 248) 414 = 1x = GCD(248, 166) 248 = 1x = GCD(166, 82) 166 = 2x = GCD(82, 2) 82 = 41x2 + 0 = GCD(2, 0) Return value: 2.

Euclid: gcd(a,b) = gcd(b,r) a = qb + r Correctness of Euclid’s GCD Algorithm When r = 0: Then gcd(b, r) = gcd(b, 0) = b since every number divides 0. But a = qb so gcd(a, b) = b = gcd(b, r), and we are done.

Euclid: gcd(a,b) = gcd(b,r)a = qb + r Correctness of Euclid’s GCD Algorithm Let d be a common divisor of b, r  b = k 1 d and r = k 2 d for some k 1, k 2.  a = qb + r = qk 1 d + k 2 d = (qk 1 + k 2 )d => d is a divisor of a Let d be a common divisor of a, b  a = k 3 d and b = k 1 d for some k 1, k 3.  r = a – qb = k 3 d – qk 1 d = (k 3 – qk 1 )d => d is a divisor of r So d is a common factor of a, b iff d is a common factor of b, r  d = gcd(a, b) iff d = gcd(b, r) When r > 0:

How fast is Euclid’s GCD Algorithm? Naive algorithm: try every number, Then the running time is about 2b iterations. Euclid’s algorithm: In two iterations, the b is decreased by half. (why?) Then the running time is about 2log(b) iterations. Exponentially faster!!

Linear Combination vs Common Divisor Greatest common divisor d is a common divisor of a and b if d|a and d|b gcd(a,b) = greatest common divisor of a and b d is an integer linear combination of a and b if d=sa+tb for integers s,t. spc(a,b) = smallest positive integer linear combination of a and b Smallest positive integer linear combination Theorem: gcd(a,b) = spc(a,b)

Linear Combination vs Common Divisor For example, the greatest common divisor of 52 and 44 is 4. And 4 is a linear combination of 52 and 44: 6 · 52 + (−7) · 44 = 4 Furthermore, no linear combination of 52 and 44 is equal to a smaller positive integer. To prove the theorem, we will prove: gcd(a,b) <= spc(a,b) spc(a,b) <= gcd(a,b) gcd(a,b) | spc(a,b) spc(a,b) is a common divisor of a and b

3. If d | a and d | b, then d | sa + tb for all s and t. GCD <= SPC Proof of (3) d | a => a = dk 1 d | b => b = dk 2 sa + tb = sdk 1 + tdk 2 = d(sk 1 + tk 2 ) => d|(sa+tb) Let d = gcd(a,b). By definition, d | a and d | b. Let f = spc(a,b) = sa+tb GCD | SPC By (3), d | f. This implies d <= f. That is gcd(a,b) <= spc(a,b).

SPC <= GCD We will prove that spc(a,b) is actually a common divisor of a and b. First, show that spc(a,b) | a. 1.Suppose, by way of contradiction, that spc(a,b) does not divide a. 2.Then, by the Division Theorem, 3.a = q x spc(a,b) + r and spc(a,b) > r > 0 4.Let spc(a,b) = sa + tb. 5.So r = a – q x spc(a,b) = a – q x (sa + tb) = (1-qs)a + qtb. 6.Thus r is an integer linear combination of a and b, and spc(a,b) > r. 7.This contradicts the definition of spc(a,b), and so r must be zero. Similarly, spa(a,b) | b. So, spc(a,b) is a common divisor of a and b, thus by definition spc(a,b) <= gcd(a,b).

Lemma. If gcd(a,b)=1 and gcd(a,c)=1, then gcd(a,bc)=1. Theorem: gcd(a,b) = spc(a,b) Application of the Theorem By the Theorem, there exist s,t,u,v such that sa + tb = 1 ua + vc = 1 Multiplying, we have (sa + tb)(ua + vc) = 1  saua + savc + tbua + tbvc = 1  (sau + svc + tbu)a + (tv)bc = 1 By the Theorem, since spc(a,bc)=1, we have gcd(a,bc)=1

Prime Divisibility pf: say p does not divide a. so gcd(p,a)=1. So by the Theorem, there exist s and t such that sa + tp = 1 (sa)b + (tp)b = b Lemma: p prime and p|a·b implies p|a or p|b. p|ab p|p Cor : If p is prime, and p| a 1 ·a 2 ···a m then p|a i for some i. Theorem: gcd(a,b) = spc(a,b) Hence p|b

Every integer, n>1, has a unique factorization into primes: p 0 ≤ p 1 ≤ ··· ≤ p k p 0 p 1 ··· p k = n Fundamental Theorem of Arithmetic Example: = 3·3·3·7·11·11·37·37·37·53

Theorem: There is a unique factorization. Unique Factorization proof: suppose, by contradiction, that there are numbers with two different factorization. By the well-ordering principle, we choose the smallest such n >1: n = p 1 ·p 2 ···p k = q 1 ·q 2 ···q m Since n is smallest, we must have that p i  q j all i,j (Otherwise, we can obtain a smaller counterexample.) Since p 1 |n = q 1 ·q 2 ···q m, so by Cor., p 1 |q i for some i. Since both p 1 = q i are prime numbers, we must have p 1 = q i. contradiction!

Extended GCD Algorithm How can we write gcd(a,b) as an integer linear combination? This can be done by extending the Euclidean’s algorithm. Example: a = 259, b= = 3· = 1· = 2· = 7·3 + 0 done, gcd = 7 49 = a – 3b 21 = = b – (a-3b) = -a+4b 7 = ·21 7 = (a-3b) – 2(-a+4b) = 3a – 11b

Example: a = 899, b= = 1· so 406 = a - b 493 = 1· so 87 = 493 – 406 = b – (a-b) = -a + 2b 406 = 4· so 58 = ·87 = (a-b) – 4(-a+2b) = 5a - 9b 87 = 1· so 29 = 87 – 1·58 = (-a+2b) - (5a-9b) = -6a + 11b 58 = 2· done, gcd = 29 Extended GCD Algorithm

Die Hard Simon says: On the fountain, there should be 2 jugs, do you see them? A 5-gallon and a 3-gallon. Fill one of the jugs with exactly 4 gallons of water and place it on the scale and the timer will stop. You must be precise; one ounce more or less will result in detonation. If you're still alive in 5 minutes, we'll speak.

Die Hard Bruce: Wait, wait a second. I don’t get it. Do you get it? Samuel: No. Bruce: Get the jugs. Obviously, we can’t fill the 3-gallon jug with 4 gallons of water. Samuel: Obviously. Bruce: All right. I know, here we go. We fill the 3-gallon jug exactly to the top, right? Samuel: Uh-huh. Bruce: Okay, now we pour this 3 gallons into the 5-gallon jug, giving us exactly 3 gallons in the 5-gallon jug, right? Samuel: Right, then what? Bruce: All right. We take the 3-gallon jug and fill it a third of the way... Samuel: No! He said, “Be precise.” Exactly 4 gallons. Bruce: Sh - -. Every cop within 50 miles is running his a - - off and I’m out here playing kids games in the park. Samuel: Hey, you want to focus on the problem at hand?

3 Gallon Jug5 Gallon Jug Start with empty jugs: (0,0) Fill the big jug: (0,5) Die Hard

3 Gallon Jug5 Gallon Jug Pour from big to little: (3,2) Die Hard

3 Gallon Jug5 Gallon Jug Empty the little: (0,2) Die Hard

3 Gallon Jug5 Gallon Jug Pour from big to little: (2,0) Die Hard

3 Gallon Jug5 Gallon Jug Fill the big jug: (2,5) Die Hard

3 Gallon Jug5 Gallon Jug Pour from big to little: (3,4) Done!! Die Hard

3 Gallon Jug5 Gallon Jug What if you have a 9 gallon jug instead? 9 Gallon Jug Can you do it? Can you prove it? Die Hard

3 Gallon Jug 9 Gallon Jug Supplies: Water Die Hard

Invariant Method Invariant: the number of gallons in each jug is a multiple of 3. i.e., 3|b and 3|l (3 divides b and 3 divides l) Corollary: it is impossible to have exactly 4 gallons in one jug. Bruce Dies!

Generalized Die Hard Can Bruce form 3 gallons using 21 and 26-gallon jugs? This question is not so easy to answer without number theory.

Invariant in Die Hard Transition: Suppose that we have water jugs with capacities B and L. Then the amount of water in each jug is always an integer linear combination of B and L. General Solution for Die Hard Theorem: gcd(a,b) = spc(a,b) Corollary: The amount of water in each jug is a multiple of gcd(a,b). Corollary: Every linear combination of a and b is a multiple of gcd(a, b).

General Solution for Die Hard Corollary: The amount of water in each jug is a multiple of gcd(a,b). Given jug of 3 and jug of 9, is it possible to have exactly 4 gallons in one jug? NO, because gcd(3,9)=3, and 4 is not a multiple of 3. Given jug of 21 and jug of 26, is it possible to have exactly 3 gallons in one jug? gcd(21,26)=1, and 3 is a multiple of 1, so this possibility has not been ruled out yet. Theorem. Given water jugs of capacity a and b, it is possible to have exactly k gallons in one jug if and only if k is a multiple of gcd(a,b).

Theorem. Given water jugs of capacity a and b, it is possible to have exactly k gallons in one jug if and only if k is a multiple of gcd(a,b). General Solution for Die Hard Given jug of 21 and jug of 26, is it possible to have exactly 3 gallons in one jug? gcd(21,26) = 1  5x21 – 4x26 = 1  15x21 – 12x26 = 3 Repeat 15 times: 1. Fill the 21-gallon jug. 2. Pour all the water in the 21-gallon jug into the 26-gallon jug. Whenever the 26-gallon jug becomes full, empty it out.

15x21 – 12x26 = 3 Repeat 15 times: 1. Fill the 21-gallon jug. 2. Pour all the water in the 21-gallon jug into the 26-gallon jug. Whenever the 26-gallon jug becomes full, empty it out. 1.There must be exactly 3 gallons left after this process. 2.Totally we have filled 15x21 gallons. 3.We pour out some multiple t of 26 gallons. 4.The 26 gallon jug can only hold somewhere between 0 and So t must be equal to And there are exactly 3 gallons left. General Solution for Die Hard

Repeat s times: 1. Fill the A-gallon jug. 2. Pour all the water in the A-gallon jug into the B-gallon jug. Whenever the B-gallon jug becomes full, empty it out. General Solution for Die Hard Given two jugs with capacity A and B with A < B, the target is C. If gcd(A,B) does not divide C, then it is impossible. Otherwise, compute C = sA + tB. The B-gallon jug will be emptied exactly t times. After that, there will be exactly C gallons in the B-gallon jug.