Discrrete mathematics for computer science arithmetic

15 70 0
Discrrete mathematics for computer science arithmetic

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

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 – Difference is a factor of log210 ≈ 3.32 but the individual operations are harder Grade School Algorithm is Θ(n2) • But answer is only O(n) bits: Can we better? 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 m-bit multiplications!!! How Fast? • T(1)=1 • T(n) = 3T(n/2) + cn • But how to solve this? Master Theorem on D+C recurrences • • • • T(1) = T(n) = aT(n/b) + cne Let L = logba Recurrence has the solution: T(n) = Θ(ne) if e > L T(n) = Θ(ne log 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 so Θ(n 1.58…) [Case 3] 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) 33 can be computed with multiplications So 2+1+2 = multiplications in all! lec 4F.8 Fast Exponentiation compute ab using registers X,Y,Z,R X:= a; Y:= 1; REPEAT: Z:= b; if Z=0, then return Y R:= remdr(Z,2); Z:= quotnt(Z,2) if R=1,then Y:= X⋅Y X:= X2 lec 4F.9 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 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) February 28, 2007 Harvard Bits 10 III Modular arithmetic 6 + = (mod 8) February 28, 2007 11 Math Quiz 2x6 = mod 11 2x6x5 =5 mod 11 23 = 2300 = 1 mod mod = (23)100 = 1100 = February 28, 2007 12 (mod p) notation • Think of the (mod p) at the end of the line as referring to everything in the equation • (23)100 = 1100 = (mod 7) means “(23)100 , 1100 , and are all equivalent if you divide by and keep just the remainder” Often written a ≡ b (mod p) February 28, 2007 Harvard Bits 13 Fast Modular Exponentiation • Problem: Given q and p and n, find y < p such that qn = y (mod p) • Method 1: multiply q by itself n-1 times – Requires n-1 multiplications • Method 2: use successive squaring – Requires about log2n multiplications • 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 February 28, 2007 Harvard Bits 14 FINIS ... n-1 multiplications • Method 2: use successive squaring – How many times can you divide n by before it is reduced to 1? – Repeated squaring requires between log2n and 2∙log2n multiplications... at most 20 multiplications! (since log21000 < 10) February 28, 2007 Harvard Bits 10 III Modular arithmetic 6 + = (mod 8) February 28, 2007 11 Math Quiz 2x6 = mod 11 2x6x5 =5 mod 11 23 = 2300 =... multiplications • Method 2: use successive squaring – Requires about log2n multiplications • Same idea works for multiplication modulo p • Example: If n is a 500-digit number, we can compute qn (mod p) in

Ngày đăng: 22/03/2019, 10:55

Mục lục

  • Slide 1

  • Slide 2

  • How fast can we multiply?

  • Grade School Algorithm is Θ(n2)

  • A Divide and Conquer Algorithm

  • How Fast?

  • Master Theorem on D+C recurrences

  • II: Fast Exponentiation

  • Fast Exponentiation

  • Powers by Repeated Squaring

  • III. Modular arithmetic

  • Math Quiz

  • (mod p) notation

  • Fast Modular Exponentiation

  • FINIS

Tài liệu cùng người dùng

Tài liệu liên quan