Loading in 5 sec....

Application: AlgorithmsPowerPoint Presentation

Application: Algorithms

- 136 Views
- Updated On :

Download Presentation
## PowerPoint Slideshow about 'application: algorithms' - Samuel

**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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript

Greatest Common Divisors

- Let a and b be integers that are not both 0.
- The greatest common divisor of a and b, denoted gcd(a, b), is the unique positive integer d with the following properties:
- d | a and d | b.
- For every integer c, if c | a and c | b, then c | d.

Least Common Multiples

- Let a and b be nonzero integers.
- The least common multiple of a and b, denoted lcm(a, b), is the unique positive integer m with the following properties:
- a | m and b | m.
- For every integer c, if a | c and b | c, then m | c.

The High-school gcd Algorithm

- The high-school method is very inefficient.
- Factor each number into standard form.
- For each prime that appears in both factorizations, use it as a factor of the gcd along with the smaller of the two exponents.

Example

- Find the gcd of 81900 and 54810.
- We factor them as
- 81900 = 22 32 52 71 131 290
- 54810 = 21 33 51 71 130 291

- Therefore, the gcd is
- 2 32 5 7 = 630

The Euclidean Algorithm

- Factoring is inefficient; therefore, this algorithm is inefficient.
- The run time of this algorithm is O(10d), where d is the number of digits in the number.

- Euclid had a much better idea.
- The run time of the Euclidean Algorithm is O(d), where d is the number of digits in the number.

The Euclidean Algorithm

- Input: A, B (positive integers, not both 0)

The Euclidean Algorithm

- Algorithm body:
- Output: b

a := A

b := B

ifb = 0 then

swap a and b

r := a mod b

whiler > 0

a := b

b := r

r := a mod b

end while

Example

- Apply the Euclidean Algorithm to A = 81900 and B = 54810.

Example

- Apply the Euclidean Algorithm to A = 81900 and B = 54810.

Example

- Apply the Euclidean Algorithm to A = 81900 and B = 54810.

Example

- Find the gcd of 1098011 and 1033133.

Least Common Multiples

- What is the efficient way to find lcm’s?
- What is the lcm of 1098011 and 1033133?

Proof of the Euclidean Algorithm

- Theorem: The Euclidean Algorithm terminates for all legitimate inputs A and B.
- Proof:
- We may assume that B > 0.
- After the first iteration of the while loop,
0 b < B

since b is the remainder of A divided by B.

Proof of the Euclidean Algorithm

- Each iteration produces a nonnegative remainder that is smaller than the previous remainder.
- This cannot happen more than B times before the remainder is 0.

Proof of the Euclidean Algorithm

- Lemma 1: If b > 0, then gcd(b, 0) = b.
- Proof:
- b | b and b | 0.
- For all integers c, if c | 0 and c | b, then c | b.
- Therefore, b = gcd(b, 0).

Proof of the Euclidean Algorithm

- Lemma 2: If a and b are integers, with b 0, and q and r are integers such that
a = qb + r

then gcd(a, b) = gcd(b, r).

- Proof:
- Let d = gcd(b, r).
- Then d | b and d | r and any integer that divides b and r must also divide d.

Proof of the Euclidean Algorithm

- We must show that d | a and d | b and any integer that divides a and b must also divide d.
- We already know that d | b.
- Since a = qb + r, it follows that d | a.
- Let c be an integer such that c | a and c | b.
- Since r = a – qb, it follows that c | r and so c | d.
- Therefore, d = gcd(a, b).

Proof of the Euclidean Algorithm

- Theorem: The Euclidean Algorithm produces the gcd of A and B.
- Proof:
- After the final iteration of the while loop, r = 0.
- By Lemma 1, the output b is the gcd of b and r, i.e., b = gcd(b, 0).
- By Lemma 2, that is equal to the gcd of “a” and “b”in the final iteration.

Proof of the Euclidean Algorithm

- But “a” and “b” on the last iteration were “b” and “r” on the previous iteration.
- Therefore, gcd(a, b) on the last iteration equals gcd(b, r) on the previous iteration, which equals gcd(a, b) on the previous iteration, and so on.
- Following this argument all the back to the first iteration, we see that the output is gcd(A, B).

Proof of the Euclidean Algorithm

- In the next chapter, we will study mathematical induction.
- At that point, we will be able to make this argument more rigorous.

Download Presentation

Connecting to Server..