1 / 15

Arithmetic

Arithmetic. I. Fast Multiplication and the Master Theorem on Divide and Conquer. How fast can we multiply?. Adding two n -bit numbers takes O(n ) operations How many operations to multiply two n -bit numbers? Or two n -decimal-digit numbers

felton
Download Presentation

Arithmetic

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

  2. I. Fast Multiplication and the Master Theorem on Divide and Conquer

  3. How fast can we multiply? • Adding two n-bit numbers takes O(n) operations • How many operations to multiply two n-bit numbers? • Or two n-decimal-digit numbers • Difference is a factor of log210 ≈ 3.32 but the individual operations are harder

  4. Grade School Algorithm is Θ(n2) But answer is only O(n) bits: Can we do better?

  5. A Divide and Conquer Algorithm Suppose n is even, n = 2m To compute a∙b Write a = a1∙2m + a0, b = b1∙2m + b0, where a1, a0, b1, b0 are m-bit numbers (numbers < 2m) – the first and last m bits of a and b a∙b = a1b1∙22m + (a1b0+a0b1)∙2m + a0b0 = a1b1∙(22m+2m) + (a1-a0)(b0-b1)∙2m + a0b0∙(2m+1) Only 3 m-bit multiplications!!!

  6. How Fast? T(1)=1 T(n) = 3T(n/2) + cn But how to solve this?

  7. Master Theorem on D+C recurrences • T(1) = 1 • T(n) = aT(n/b) + cne • Let L = logba • Recurrence has the solution: • T(n) = Θ(ne) if e > L • T(n) = Θ(nelog n) if e = L • T(n) = Θ(nL) if e < L • Binary search: a=1, b=2, e=0, L=0 [Case 2] • Merge sort: a=2, b=2, e=1, L=1 [Case 2] • Ordinary mult: a=4, b=2, e=1, L=2 [Case 3] • Fast mult: a=3, b=2, e=1, L=lg 3 soΘ(n1.58…) [Case 3]

  8. II: Fast Exponentiation Compute 313: 313 = 3∙3∙3∙3∙3∙3∙3∙3∙3∙3∙3∙3∙3 (12 multiplications, or Θ(exponent)) 313 =36∙36∙3 (2 multiplications)36 = 33∙33 (1 multiplication)33can be computed with 2 multiplications So 2+1+2 = 5 multiplications in all!

  9. Fast Exponentiation compute ab using registers X,Y,Z,R X:= a; Y:= 1; Z:= b; REPEAT: if Z=0, then return Y R:= remdr(Z,2); Z:= quotnt(Z,2) if R=1,then Y:= X⋅Y X:= X2

  10. Powers by Repeated Squaring • Problem:compute ab • Method 1: multiply a by itself n-1 times • Requires n-1 multiplications • Method 2: use successive squaring • How many times can you divide n by 2 before it is reduced to 1? • Repeated squaring requires between log2n and 2∙log2n multiplications • Huge savings! n = 1000 => at most 20 multiplications! (since log21000 < 10) Harvard Bits

  11. 0 7 1 6 2 5 3 4 III. Modular arithmetic 6 + 5 = 3 (mod 8)

  12. Math Quiz 1 5 1 1 = (23)100 = 1100 = 1

  13. (mod p) notation • Think of the (mod p) at the end of the line as referring to everything in the equation • (23)100 = 1100 = 1 (mod 7) means “(23)100 , 1100 , and 1 are all equivalent if you divide by 7 and keep just the remainder” Often written a ≡ b (mod p) Harvard Bits

  14. Fast Modular Exponentiation • Problem: Given qand pand n,find y< psuch that qn= y (mod p) • Method 1: multiplyqby itself n-1 times • Requires n-1 multiplications • Method 2: use successive squaring • Requires about log2nmultiplications • Same idea works for multiplication modulo p • Example: If n is a 500-digit number, we can compute qn (mod p) in about 1700 (= lg 10500) steps. Harvard Bits

  15. FINIS

More Related