1 / 15

Chapter 3 (Part 3): The Fundamentals: Algorithms, the Integers & Matrices

This chapter discusses algorithms for integer operations, including base conversion, addition, and multiplication. It also covers binary and hexadecimal expansions of integers.

dchick
Download Presentation

Chapter 3 (Part 3): The Fundamentals: Algorithms, the Integers & Matrices

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. Chapter 3 (Part 3):The Fundamentals: Algorithms, the Integers & Matrices Integers & Algorithms (Section 3.6)

  2. Integers & Algorithms (3.6) • Introduction • Algorithm is a set a procedures that handle arithmetic operations • Use binary representations to enter the world of computer arithmetic • Good illustration of the complexity of an algorithm • Role of the Euclidean algorithm • Base b expansion and modular exponentiation, important in cryptography CSE 504, Chapter 2 (Part 3): The Fundamentals: Algorithms, the Integers & Matrices

  3. Integers & Algorithms (3.6) (cont.) • Representations of integers • Theorem 1 Let b be a positive integer grater than 1. Then if n is a positive integer, it can be expressed uniquely in the form n = akbk + ak-1bk-1 +…+ a1b + a0, where k is a nonnegative integer, a0, a1, …,ak are nonnegative integers less than b, and ak 0. The representation of n given in theorem 1 is known as the base b expansion of n. CSE 504, Chapter 2 (Part 3): The Fundamentals: Algorithms, the Integers & Matrices

  4. Integers & Algorithms (3.6) (cont.) • Example: What is the decimal expansion of the integer that has (1 0101 1111)2 as its binary expansion? Solution: (1 0101 1111)2 = 1*28 + 0*27 + 1*26 + 0*25 + 1*24 + 1*23 + 1*22 + 1*21 + 1*20 = 351 CSE 504, Chapter 2 (Part 3): The Fundamentals: Algorithms, the Integers & Matrices

  5. Integers & Algorithms (3.6) (cont.) • Hexadecimal expansions = base 16 expansion 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F The letters A through F represent the digits corresponding to the number 10 through 15. • Example: What is the decimal expansion of the hexadecimal expansion of (2AE0B)16? Solution: (2AE0B)16 = 2*164 + 10*163 + 14*162 + 0*161 + 11*160 = (175627)10 Each hexadecimal digit can be represented using 4 bits. (1110 0101)2 = (E5)16 (E16 = (1110)2 ; 516 = (0101)2) • Bytes: bit strings of length 8 represented by two hexadecimal digits. CSE 504, Chapter 2 (Part 3): The Fundamentals: Algorithms, the Integers & Matrices

  6. Integers & Algorithms (3.6) (cont.) • Representations of integers (cont.) • Base conversion Example: Find the base 8 (or octal) expansion of (12345)10 Solution: First, divide 12345 by 8.12345 = 8 * 1543 + 1 1543 = 8 * 192 + 7 192 = 8 * 24 + 0 24 = 8 * 3 +0 3 = 8 * 0 + 3  (12345)10 = (30071)8 CSE 504, Chapter 2 (Part 3): The Fundamentals: Algorithms, the Integers & Matrices

  7. Integers & Algorithms (3.6) (cont.) Example: Find the hexadecimal expansion of (11 1110 1011 1100)2 and the binary expansion of (A8D)16. Solution: • Form blocks of 4 digits and add zeros at the start of the leftmost block if necessary. They are: 0011, 1110, 1011 and 1100. • Convert each binary block into decimal(0011)2 = 316; (1110)2 = E16; (1011)2 = B16; (1100)2 = C16Therefore, (11 1110 1011 1100)2 = (3EBC)16.The conversion of (A8D)16 into binary notation requires replacing each hexadecimal digit by a block of 4 binary digits. They are: A16 = (1010)2, 816 = (1000)2, D16 = (1101)2 CSE 504, Chapter 2 (Part 3): The Fundamentals: Algorithms, the Integers & Matrices

  8. Integers & Algorithms (3.6) (cont.) • Algorithms for integer operations • Goal 1: Compute the sum of two integers expressed with their binary expansions. The complexity will be based on the number of bits used.a = (an-1an-2 … a1a0)2, b = (bn-1bn-2 … b1b0)2 a + b? (sum of two n-bits numbers) First: a0 + b0 = c0* 2 + s0 where s0 = rightmost bit in the binary expansion of a + b c0 = carry = 0 or 1.Second: a1 + b1 + c0 = c1* 2 + s1 where s1 = next bit of the sum expansion c1 = carry … a + b = (snsn-1sn-2 … s1s0)2 CSE 504, Chapter 2 (Part 3): The Fundamentals: Algorithms, the Integers & Matrices

  9. Integers & Algorithms (3.6) (cont.) Example: Add a = (1110)2 and b = (1011)2 Solution: a0 + b0 = 0 + 1 = 0 * 2 + 1  c0 = 0, s0 = 1 a1 + b1 + c0 = 1 + 1 + 0 = 1 * 2 + 0  c1 = 1, s1 = 0 a2 + b2 + c1 = 1 + 0 + 1 = 1 * 2 + 0  c2 = 1, s2 = 0 a3 + b3 + c2 = 1 + 1 + 1 = 1 * 2 + 1  c3 = 1, s3 = 1  s4 = c3 = 1  a + b = (1 1001)2 CSE 504, Chapter 2 (Part 3): The Fundamentals: Algorithms, the Integers & Matrices

  10. Integers & Algorithms (3.6) (cont.) • Goal 2: Compute the product since b = bn-1bn-2…b1b0 then:ab = a (b020 + b121 + … + bn-12n-1) = a (b020) + a(b121) + … + a(bn-12n-1) Using this latter equation, we can compute a * b.abj = a if bj = 1 and 0 otherwise. Each time we multiply a term by 2, we shift its binary expansion one place to the left and add a zero at the tail end of the expansion. CSE 504, Chapter 2 (Part 3): The Fundamentals: Algorithms, the Integers & Matrices

  11. Integers & Algorithms (3.6) (cont.) • Example: Find the product of a = (110)2 and b = (101)2 Solution:ab020 = (110)2 * 1 * 20 = (110)2 ab121 = (110)2 * 0 * 21 = (0000)2 (4 zeros-shift) ab222 = (110)2 * 1 * 22 = (11000)2 add 2-zero bits CSE 504, Chapter 2 (Part 3): The Fundamentals: Algorithms, the Integers & Matrices

  12. Integers & Algorithms (3.6) (cont.) To find the product, we need to perform:(110)2 + (0000)2 + (11000)2ab = (11110)2Other exercise: check for example: 7 * 5 = 35 is true in binary expansion. CSE 504, Chapter 2 (Part 3): The Fundamentals: Algorithms, the Integers & Matrices

  13. Integers & Algorithms (3.6) (cont.) • The Euclidean algorithm • Goal: Compute the great common divisor (gcd) of two integers avoiding the prime factorization of each number which is time-consuming. CSE 504, Chapter 2 (Part 3): The Fundamentals: Algorithms, the Integers & Matrices

  14. Integers & Algorithms (3.6) (cont.) • Illustration: Find gcd(91, 287) • Divide 287 (the larger) by 91 (the smaller)287 = 91 * 3 + 14 • Any divisor of 91 and 287 must be a divisor of287 – 91 * 3 =14 (Theorem 1, part 1 & 2) • Any divisor of 91 and 14 divides 287 = 91 * 3 + 14 • gcd(91,287) = gcd(91,14) • Next divide 91 by 14 to obtain: 91 = 14 * 6 + 7Using the same reasoning, our next step is to: • Divide 14 by 7: 14 = 7 * 2since 7/14  gcd(14,7) = 7. But since gcd(287,91) = gcd(91,14) = gcd (14,7) = 7, we have solved the problem CSE 504, Chapter 2 (Part 3): The Fundamentals: Algorithms, the Integers & Matrices

  15. Integers & Algorithms (3.6) (cont.) Lemma 1: Let a = bq + r, where a, b, q and r are integers. Then we can write: gcd(a,b) = gcd(b,r) • Example: Determine the gcd of 414 and 662 using the Euclidean algorithm. Solution: 662 = 414 * 1 + 248414 = 248 * 1 + 166 248 = 166 * 1 + 82166 = 82 * 2 + 282 = 2 * 41Therefore: gcd(414,662) = 2 (since 2 is the last nonzero remainder !) CSE 504, Chapter 2 (Part 3): The Fundamentals: Algorithms, the Integers & Matrices

More Related