Download - 3 Gallon Jug5 Gallon Jug Greatest Common Divisor Dec 28.

Transcript
Page 1: 3 Gallon Jug5 Gallon Jug Greatest Common Divisor Dec 28.

3 Gallon Jug 5 Gallon Jug

Greatest Common Divisor

Dec 28

Page 2: 3 Gallon Jug5 Gallon Jug Greatest Common Divisor Dec 28.

This Lecture

• Quotient remainder theorem

• Greatest common divisor & Euclidean algorithm

• Linear combination and GCD, extended Euclidean algorithm

• Prime factorization and other applications

Page 3: 3 Gallon Jug5 Gallon Jug Greatest Common Divisor Dec 28.

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.

Page 4: 3 Gallon Jug5 Gallon Jug Greatest Common Divisor Dec 28.

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

Page 5: 3 Gallon Jug5 Gallon Jug Greatest Common Divisor Dec 28.

This Lecture

• Quotient remainder theorem

• Greatest common divisor & Euclidean algorithm

• Linear combination and GCD, extended Euclidean algorithm

• Prime factorization and other applications

Page 6: 3 Gallon Jug5 Gallon Jug Greatest Common Divisor Dec 28.

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.

Page 7: 3 Gallon Jug5 Gallon Jug Greatest Common Divisor Dec 28.

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.

Page 8: 3 Gallon Jug5 Gallon Jug Greatest Common Divisor Dec 28.

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 = 8 + 4 gcd(12,8) = 4

a=21, b=9 => 21 = 2x9 + 3 gcd(21,9) = 3

a=99, b=27 => 99 = 3x27 + 18 gcd(99,27) = 9

gcd(8,4) = 4

gcd(9,3) = 3

gcd(27,18) = 9

Page 9: 3 Gallon Jug5 Gallon Jug Greatest Common Divisor Dec 28.

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

Page 10: 3 Gallon Jug5 Gallon Jug Greatest Common Divisor Dec 28.

gcd(a,b)

if b = 0, then answer = a.

else

write a = qb + r

answer = gcd(b,r)

Example 1

GCD(102, 70) 102 = 70 + 32

= GCD(70, 32) 70 = 2x32 + 6

= GCD(32, 6) 32 = 5x6 + 2

= GCD(6, 2) 6 = 3x2 + 0

= GCD(2, 0)

Return value: 2.

Page 11: 3 Gallon Jug5 Gallon Jug Greatest Common Divisor Dec 28.

gcd(a,b)

if b = 0, then answer = a.

else

write a = qb + r

answer = gcd(b,r)

Example 2

GCD(252, 189) 252 = 1x189 + 63

= GCD(189, 63) 189 = 3x63 +

0

= GCD(63, 0)

Return value: 63.

Page 12: 3 Gallon Jug5 Gallon Jug Greatest Common Divisor Dec 28.

gcd(a,b)

if b = 0, then answer = a.

else

write a = qb + r

answer = gcd(b,r)

Example 3

GCD(662, 414) 662 = 1x414 + 248

= GCD(414, 248) 414 = 1x248 +

166

= GCD(248, 166) 248 = 1x166 +

82

= GCD(166, 82) 166 = 2x82 + 2

= GCD(82, 2) 82 = 41x2 + 0

= GCD(2, 0)

Return value: 2.

Page 13: 3 Gallon Jug5 Gallon Jug Greatest Common Divisor Dec 28.

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.

Page 14: 3 Gallon Jug5 Gallon Jug Greatest Common Divisor Dec 28.

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 = k1d and r = k2d for some k1, k2.

Þ a = qb + r = qk1d + k2d = (qk1 + k2)d => d is a divisor

of a

Let d be a common divisor of a, b

Þ a = k3d and b = k1d for some k1, k3.

Þ r = a – qb = k3d – qk1d = (k3 – qk1)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:

Page 15: 3 Gallon Jug5 Gallon Jug Greatest Common Divisor Dec 28.

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!!

Page 16: 3 Gallon Jug5 Gallon Jug Greatest Common Divisor Dec 28.

This Lecture

• Quotient remainder theorem

• Greatest common divisor & Euclidean algorithm

• Linear combination and GCD, extended Euclidean algorithm

• Prime factorization and other applications

Page 17: 3 Gallon Jug5 Gallon Jug Greatest Common Divisor Dec 28.

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)

Page 18: 3 Gallon Jug5 Gallon Jug Greatest Common Divisor Dec 28.

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

Page 19: 3 Gallon Jug5 Gallon Jug Greatest Common Divisor Dec 28.

3. If d | a and d | b, then d | sa + tb for all s and t.

GCD <= SPC

Proof of (3)

d | a => a = dk1

d | b => b = dk2

sa + tb = sdk1 + tdk2 = d(sk1 + tk2)

=> d|(sa+tb)

Let d = gcd(a,b). By definition, d | a and d | b.

Let f = spc(a,b) = sa+tbGCD | SPC

By (3), d | f. This implies d <= f. That is gcd(a,b) <= spc(a,b).

Page 20: 3 Gallon Jug5 Gallon Jug Greatest Common Divisor Dec 28.

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

Page 21: 3 Gallon Jug5 Gallon Jug Greatest Common Divisor Dec 28.

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=70

259 = 3·70 + 49

70 = 1·49 + 21

49 = 2·21 + 7

21 = 7·3 + 0 done, gcd = 7

49 = a – 3b

21 = 70 - 49

21 = b – (a-3b) = -a+4b

7 = 49 - 2·21

7 = (a-3b) – 2(-a+4b) = 3a – 11b

Page 22: 3 Gallon Jug5 Gallon Jug Greatest Common Divisor Dec 28.

Example: a = 899, b=493

899 = 1·493 + 406 so 406 = a - b

493 = 1·406 + 87 so 87 = 493 – 406

= b – (a-b) = -a + 2b

406 = 4·87 + 58 so 58 = 406 - 4·87

= (a-b) – 4(-a+2b) = 5a - 9b

87 = 1·58 + 29 so 29 = 87 – 1·58

= (-a+2b) - (5a-9b) = -6a +

11b

58 = 2·29 + 0 done, gcd = 29

Extended GCD Algorithm

Page 23: 3 Gallon Jug5 Gallon Jug Greatest Common Divisor Dec 28.

This Lecture

• Quotient remainder theorem

• Greatest common divisor & Euclidean algorithm

• Linear combination and GCD, extended Euclidean algorithm

• Prime factorization and other applications

Page 24: 3 Gallon Jug5 Gallon Jug Greatest Common Divisor Dec 28.

Theorem: gcd(a,b) = spc(a,b)

Application of the Theorem

Why is this theorem useful?

(1)we can now “write down” gcd(a,b) as some concrete equation,

(i.e. gcd(a,b) = sa+tb for some integers s and t),

and this allows us to reason about gcd(a,b) much easier.

(2) If we can find integers s and t so that sa+tb=c,

then we can conclude that gcd(a,b) <= c.

In particular, if c=1, then we can conclude that gcd(a,b)=1.

Page 25: 3 Gallon Jug5 Gallon Jug Greatest Common Divisor Dec 28.

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| a1·a2···am then p|ai for some i.

Theorem: gcd(a,b) = spc(a,b)

Hence p|b

Page 26: 3 Gallon Jug5 Gallon Jug Greatest Common Divisor Dec 28.

Every integer, n>1, has a unique factorization into primes:

p0 ≤ p1 ≤ ··· ≤ pk

p0 p1 ··· pk = n

Fundamental Theorem of Arithmetic

Example:

61394323221 = 3·3·3·7·11·11·37·37·37·53

Page 27: 3 Gallon Jug5 Gallon Jug Greatest Common Divisor Dec 28.

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 = p1·p2···pk = q1·q2···qm

Since n is smallest, we must have that pi qj all i,j

(Otherwise, we can obtain a smaller counterexample.)

Since p1|n = q1·q2···qm, so by Cor., p1|qi for some i.

Since both p1 = qi are prime numbers, we must have p1

= qi.

contradiction!

Page 28: 3 Gallon Jug5 Gallon Jug Greatest Common Divisor Dec 28.

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

Page 29: 3 Gallon Jug5 Gallon Jug Greatest Common Divisor Dec 28.

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.

Page 30: 3 Gallon Jug5 Gallon Jug Greatest Common Divisor Dec 28.

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?

Page 31: 3 Gallon Jug5 Gallon Jug Greatest Common Divisor Dec 28.

3 Gallon Jug 5 Gallon Jug

Start with empty jugs: (0,0)Fill the big jug: (0,5)

Die Hard

Page 32: 3 Gallon Jug5 Gallon Jug Greatest Common Divisor Dec 28.

3 Gallon Jug 5 Gallon Jug

Pour from big to little: (3,2)

Die Hard

Page 33: 3 Gallon Jug5 Gallon Jug Greatest Common Divisor Dec 28.

3 Gallon Jug 5 Gallon Jug

Empty the little: (0,2)

Die Hard

Page 34: 3 Gallon Jug5 Gallon Jug Greatest Common Divisor Dec 28.

3 Gallon Jug 5 Gallon Jug

Pour from big to little: (2,0)

Die Hard

Page 35: 3 Gallon Jug5 Gallon Jug Greatest Common Divisor Dec 28.

3 Gallon Jug 5 Gallon Jug

Fill the big jug: (2,5)

Die Hard

Page 36: 3 Gallon Jug5 Gallon Jug Greatest Common Divisor Dec 28.

3 Gallon Jug 5 Gallon Jug

Pour from big to little: (3,4)

Done!!

Die Hard

Page 37: 3 Gallon Jug5 Gallon Jug Greatest Common Divisor Dec 28.

3 Gallon Jug 5 Gallon Jug

What if you have a 9 gallon jug instead?

9 Gallon Jug

Can you do it? Can you prove it?

Die Hard

Page 38: 3 Gallon Jug5 Gallon Jug Greatest Common Divisor Dec 28.

3 Gallon Jug

9 Gallon Jug

Supplies:

Water

Die Hard

Page 39: 3 Gallon Jug5 Gallon Jug Greatest Common Divisor Dec 28.

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!

Page 40: 3 Gallon Jug5 Gallon Jug Greatest Common Divisor Dec 28.

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.

Page 41: 3 Gallon Jug5 Gallon Jug Greatest Common Divisor Dec 28.

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

Page 42: 3 Gallon Jug5 Gallon Jug Greatest Common Divisor Dec 28.

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

Page 43: 3 Gallon Jug5 Gallon Jug Greatest Common Divisor Dec 28.

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.

Page 44: 3 Gallon Jug5 Gallon Jug Greatest Common Divisor Dec 28.

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

5. So t must be equal to 12.

6. And there are exactly 3 gallons left.

General Solution for Die Hard

Page 45: 3 Gallon Jug5 Gallon Jug Greatest Common Divisor Dec 28.

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.