Tải bản đầy đủ (.pptx) (15 trang)

Discrrete mathematics for computer science arithmetic

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.83 MB, 15 trang )

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 do
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 3 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) = 1
T(n) = aT(n/b) + cne
Let L = logba
Recurrence has the solution:
1. T(n) = Θ(ne) if e > L
2. T(n) = Θ(ne log n) if e = L
3. 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 Θ(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 2
multiplications
So 2+1+2 = 5 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 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)
February 28, 2007

Harvard Bits

10


III. Modular arithmetic
0
7

1


6

2

5

3
4

6 + 5 = 3 (mod 8)
February 28, 2007

11


Math Quiz
2x6 = 1

mod 11

2x6x5 =5

mod 11

23 =
2300 =

1
1


mod 7
mod 7

= (23)100 = 1100 = 1
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 = 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)

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



×