102
Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

Embed Size (px)

Citation preview

Page 1: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

Discrete Math and Its Application to

Computer ScienceUBİ 501

Lecture - 3

İlker Kocabaş

E.Ü Uluslararası Bilgisayar Enstitüsü

Bornova - İzmir

Page 2: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

Flow • ALGORITHMS

– Introduction– Algorithmic Complexity– Growing Functions

• NUMBER THEORY– Modular Arithmetic – Primary Numbers– Greatest Common Divisor (gcd) & Least Common Multipier (lcd)– Ecludian Algorithm for gcd– Number Systems: Decimal, Binary, Octal, ….

Page 3: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

AlgorithmsIntroduction (1)

• Algorithm:– A finite set of precise instructions for performing a

computation or for solving a problem.

– Synonyms for a algorithm are: program, recipe, procedure, and many others.

• Pseudocode (T: Sözde Kod)– Describing an algorithm by using a specific computure

language: Complex instructions and difficult to understand.

– Intemadiate step between Natural Language & Programming Language

Page 4: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

Algorithms (1)Pseudocode Example

• Algorithm-1: Finding the maximum element in a finite sequence

1. procedure max(a1,a2,a3….an: integers)

2. max := a1

3. for i:=0 to n

4. if max < ai then max:= ai

5. output maxOUTPUT

INPUT

DIFINITENESS

Page 5: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

AlgorithmsBasic Problems in CS

• Searching (T: Arama) Algorithms– Finding element ai equals to x

– Linear Search, Binary Search, …

– Algorithm 2: Linear Search Algorithm

1. procedure max(x: integer, a1,a2,a3….an: distinct integers)2. i:=13. while (i ≤ n and x ≠ ai)4. i := i + 15. if i ≤ n then location := i6. else location:= 07. output location

Page 6: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

Algorithms (1)Basic Problems in CS

• Linear Search Example– Find x = 5

ai10 1 5 7 1

1 3 4 12 9 8 6 2

i=1 NO

3. while (i ≤ n and x ≠ ai)4. i := i + 15. if i ≤ n then location := i6. else location:= 0

i=2 NO

i=3 YES

Page 7: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

Algorithms (1)Basic Problems in CS

• Sorting (Sıralama) Algorithms– Sort a sequence A for a given order criteria

– Buble Sort, Insertion Sort, …..

A: 10 1 5 7 1

1 3 4 12 9 8 6 2

B: 1 2 3 4 5 6 7 8 9 10

11

12

Page 8: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

Algorithms (1)Basic Problems in CS

• Merging (T: Birleştirme) Algorithms– Merge ordered sequences A & B

A&B: 1 3 5 7 8 11 2 4 6 9 1

213

C: 1 2 3 4 5 6 7 8 9 10

11

12

Page 9: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

AlgorithmsAlgorithmic Complexity (2)

• How can the efficiency of an algorithm be analyzed?– Time: “Time used by a computer” to solve a

problem

– Space: “The amount of Computer memory” required to implement algorithm

Page 10: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

Algorithms (2)Running Time

• Running time:– Measure the actual time spent by implementation of

algorithm. • Deficiencies:

– Actual running time changes paltform to platform (1Ghz ≠ 2 Ghz)

– There is no information wrt varying n (input size) and input order.

– Count the basic operations or steps processed by algorithm

Page 11: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

Algorithms (2)Running Time

• Running time:– Count the basic operations or steps executed by

algorithm • Comparision (T: karşılaştırma) [ Eg. X < Y ]

• Assignment (T: Atama) [ Eg. X = 5 ]

• Increment/Decriment [ Eg. X = X 1 ]

• Function Output [ Eg. return/output X ]

• Addition/Substruction/Multiplication/Division

• ………..

Page 12: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

Algorithms (2)Running Time

• Count the basic operations or steps processed by algorithm – Best Case Analysis: Minimum number of operations executed

wrt input behaviour of a given size.

– Average Case Analysis: Average number of operations used to solve the problem over all inputs of a given size.

– Worst Case Analysis: Maximum number of operations numbers of steps executed wrt input behaviour of a given size.

Page 13: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

Algorithms (2)Algorithm 3: Surjectivity

procedure isOnto( f [(1, 2,…, n) (1, 2,…, m)] : function)1. if( m > n ) 1 step comp. 2. return false 1 step End if exec.3. soFarIsOnto := true 1 step ass.4. for j := 1 to m m loops: 1 step comp.

+1 step increment5. soFarIsOnto := false 1 step ass.6. for i := 1 to n n loops: 2 steps comp. +

inc. 7. if ( f(i ) = j ) 1 step comp.8. soFarIsOnto := true 1 step ass.9. if( !soFarIsOnto ) 1 step

negation10. return false 1 step End 11. return true; 1 step End

Page 14: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

Algorithms (2)Algorithm 3: Surjectivity

• Best Case Analysis: 1 operation1. if( m > n ) 1 step comp. 2. return false 1 step End if exec.

• Worst Case Analysis: 2+ m(5n+3) = 5mn +3m+21. if( m > n ) 1 2. return false 1 step End if exec.

3. soFarIsOnto := true 14. for j := 1 to m n : [ 1 +15. soFarIsOnto := false 16. for i := 1 to n n : ( 1 + 1 7. if ( f(i ) = j ) 18. soFarIsOnto := true 19. if( !soFarIsOnto ) 1 ) ]10. return false 1 step End 11. return true; 1 step End

Page 15: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

Algorithm (2)Comparing Running Times

1. At most 5mn+3m+2 for first algorithm2. At most 5m+2n+2 for second algorithmWorst case when m n so replace m by n:

5n 2+3n+2 vs. 8n+2To tell which is better, look at dominant term:

5n 2+3n+2 vs. 8n+2

So second algorithm is better.

Page 16: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L8 16

Running Times IssuesBig-O Response

Asymptotic notation (Big-O, Big- , Big-) gives partial resolution to problems:

1. For large n the largest term dominates so 5n 2+3n+2 is modeled by just n 2.

Page 17: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L8 17

Running Times IssuesBig-O Response

Asymptotic notation (Big-O, Big- , Big-) gives partial resolution to problems:

2. Different lengths of basic steps, just change 5n 2 to Cn 2 for some constant, so doesn’t change largest term

Page 18: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L8 18

Running Times IssuesBig-O Response

Asymptotic notation (Big-O, Big- , Big-) gives partial resolution to problems:

3. Basic operations on different (but well-designed) platforms will differ by a constant factor. Again, changes 5n 2 to Cn 2 for some constant.

Page 19: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L8 19

Running Times IssuesBig-O Response

Asymptotic notation (Big-O, Big- , Big-) gives partial resolution to problems:

4. Even if overestimated by assuming iterations of while-loops that never occurred, may still be able to show that overestimate only represents different constant multiple of largest term.

Page 20: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

Big-O, Big-, Big-

• Useful for computing algorithmic complexity, i.e. the amount of time that it takes for computer program to run.

Page 21: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L8 21

Notational Issues

Big-O notation is a way of comparing functions. Notation unconventional:

EG: 3x 3 + 5x 2 – 9 = O (x 3)

Doesn’t mean

“3x 3 + 5x 2 – 9 equals the function O (x 3)”

Which actually means

“3x 3+5x 2 –9 is dominated by x 3”

Read as: “3x 3+5x 2 –9 is big-Oh of x 3”

Page 22: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L8 22

Intuitive Notion of Big-O

Asymptotic notation captures behavior of functions for large values of x.

EG: Dominant term of 3x 3+5x 2 –9 is x 3.

As x becomes larger and larger, other terms become insignificant and only x 3 remains in the picture:

Page 23: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L8 23

Intuitive Notion of Big-Odomain – [0,2]

y = 3x 3+5x 2 –9

y = x 3

y = x

y = x 2

Page 24: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L8 24

Intuitive Notion of Big-Odomain – [0,5]

y = 3x 3+5x 2 –9

y = x 3

y = x

y = x 2

Page 25: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L8 25

Intuitive Notion of Big-Odomain – [0,10]

y = 3x 3+5x 2 –9

y = x 3

y = xy = x 2

Page 26: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L8 26

Intuitive Notion of Big-Odomain – [0,100]

y = 3x 3+5x 2 –9

y = x 3

y = xy = x 2

Page 27: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L8 27

Intuitive Notion of Big-O

In fact, 3x 3+5x 2 –9 is smaller than 5x 3 for large enough values of x:

y = 3x 3+5x 2 –9

y = 5x 3

y = xy = x 2

Page 28: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L8 28

Big-O. Formal Definition

f (x ) is asymptotically dominated by g (x ) if there’s a constant multiple of g (x ) bigger than f (x ) as x goes to infinity:

DEF: Let f , g be functions with domain R0 or N and codomain R. If there are constants C and k such

x > k, |f (x )| C |g (x )|

then we write:

f (x ) = O ( g (x ) )

Page 29: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L8 29

Common Misunderstanding

It’s true that 3x 3 + 5x 2 – 9 = O (x 3) as we’ll prove shortly. However, also true are:– 3x 3 + 5x 2 – 9 = O (x 4)

– x 3 = O (3x 3 + 5x 2 – 9)

– sin(x) = O (x 4)

NOTE: C.S. usage of big-O typically involves mentioning only the most dominant term.

“The running time is O (x 2.5)”

Mathematically big-O is more subtle.

Page 30: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L8 30

Big-O. Example

EG: Show that 3x 3 + 5x 2 – 9 = O (x 3).

Previous graphs show C = 5 good guess.

Find k so that

3x 3 + 5x 2 – 9 5x 3

for x > k

Page 31: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L8 31

EG: Show that3x 3 + 5x 2 – 9 = O (x 3).

Find k so that

3x 3 + 5x 2 – 9 5x 3

for x > k

1. Collect terms: 5x 2 ≤ 2x 3 + 9

Page 32: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L8 32

EG: Show that3x 3 + 5x 2 – 9 = O (x 3).

Find k so that

3x 3 + 5x 2 – 9 5x 3

for x > k

1. Collect terms: 5x 2 ≤ 2x 3 + 9

2. What k will make 5x 2 ≤ x 3 for x > k ?

Page 33: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L8 33

EG: Show that3x 3 + 5x 2 – 9 = O (x 3).

Find k so that

3x 3 + 5x 2 – 9 5x 3

for x > k

1. Collect terms: 5x 2 ≤ 2x 3 + 9

2. What k will make 5x 2 ≤ x 3 for x > k ?

3. k = 5 !

Page 34: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L8 34

EG: Show that3x 3 + 5x 2 – 9 = O (x 3).

Find k so that

3x 3 + 5x 2 – 9 5x 3

for x > k

1. Collect terms: 5x 2 ≤ 2x 3 + 9

2. What k will make 5x 2 ≤ x 3 for x > k ?

3. k = 5 !

4. So for x > 5, 5x 2 ≤ x 3 ≤ 2x 3 + 9

Page 35: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L8 35

EG: Show that3x 3 + 5x 2 – 9 = O (x 3).

Find k so that

3x 3 + 5x 2 – 9 5x 3

for x > k

1. Collect terms: 5x 2 ≤ 2x 3 + 9

2. What k will make 5x 2 ≤ x 3 for x > k ?

3. k = 5 !

4. So for x > 5, 5x 2 ≤ x 3 ≤ 2x 3 + 9

5. Solution: C = 5, k = 5 (not unique!)

Page 36: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L8 36

EG: Show that3x 3 + 5x 2 – 9 = O (x 3).

Find k so that

3x 3 + 5x 2 – 9 5x 3

for x > k

1. Collect terms: 5x 2 ≤ 2x 3 + 9

2. What k will make 5x 2 ≤ x 3 for x > k ?

3. k = 5 !

4. So for x > 5, 5x 2 ≤ x 3 ≤ 2x 3 + 9

5. Solution: C = 5, k = 5 (not unique!)

Page 37: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L8 37

Big-O. Negative Example

x 4 O (3x 3 + 5x 2 – 9) :

No pair C, k exist for which x > k implies C (3x 3 + 5x 2 – 9) x 4

Argue using limits:

x 4 always catches up regardless of C. �

)/9/53(lim

)953(lim

323

4

xxC

x

xxC

xxx

xCC

xxxlim

3

1

)003(lim

Page 38: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L8 38

Big-O and limits

LEMMA: If the limit as x of the quotient |f (x) / g (x)| exists then f (x ) = O ( g (x ) ).

EG: 3x 3 + 5x 2 – 9 = O (x 3 ). Compute:

…so big-O relationship proved.3

1

/9/53lim

953lim

3

3

23

xx

x

xxxx

Page 39: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L8 39

Little-o and limits

DEF: If the limit as x of the quotient |f (x) / g (x)| = 0 then f (x ) = o (g (x ) ).

EG: 3x 3 + 5x 2 – 9 = o (x 3.1 ). Compute:

01

/9/5/3lim

953lim

1.31.11.0

1.3

23

xxx

x

xxxx

Page 40: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L8 40

Big- and Big-

Big-: reverse of big-O. I.e.

f (x ) = (g (x )) g (x ) = O (f (x ))

so f (x ) asymptotically dominates g (x ).

Big-: domination in both directions. I.e.

f (x ) = (g (x ))

f (x ) = O (g (x )) f (x ) = (g (x ))

Synonym for f = (g): “f is of order g ”

Page 41: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L8 41

Useful facts

• Any polynomial is big- of its largest term– EG: x 4/100000 + 3x 3 + 5x 2 – 9 = (x 4)

• The sum of two functions is big-O of the biggest– EG: x 4 ln(x ) + x 5 = O (x 5)

• Non-zero constants are irrelevant:– EG: 17x 4 ln(x ) = O (x 4 ln(x ))

Page 42: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L8 42

Big-O, Big-, Big-. Examples

Q: Order the following from smallest to largest asymptotically. Group together all functions which are big- of each other:

xex xxexxx

xxxxx ,,,13,1

13,1,,ln,sin

xxxxxxxx 2220 lg,)(ln,ln),102)(sin(

Page 43: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L8 43

Big-O, Big-, Big-. ExamplesA:

1.2.3. , (change of base formula)4. 5.6.7.8.9.10.

xe)102)(sin( 20 xxx

x1

xlnx113

x2lgxxxxx 13,,sin

ex

xx ln2)(ln xx

xx

Page 44: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L8 44

Incomparable Functions

Given two functions f (x ) and g (x ) it is not always the case that one dominates the other so that f and g are asymptotically incomparable.

E.G:

f (x) = |x 2 sin(x)| vs. g (x) = 5x 1.5

Page 45: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L8 45

Incomparable Functions

0 5 10 15 20 25 30 35 40 45 500

500

1000

1500

2000

2500

y = |x 2 sin(x)|

y = x 2

y = 5x 1.5

Page 46: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L8 46

Incomparable Functions

0 20 40 60 80 100 120 140 160 180 2000

0.5

1

1.5

2

2.5

3

3.5

4x 10

4

y = |x 2 sin(x)|

y = x 2

y = 5x 1.5

Page 47: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L8 47

Big-OA Grain of Salt

Big-O notation gives a good first guess for deciding which algorithms are faster. In practice, the guess isn’t always correct.

Consider time functions n 6 vs. 1000n 5.9. Asymptotically, the second is better. Often catch such examples of purported advances in theoretical computer science publications. The following graph shows the relative performance of the two algorithms:

Page 48: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L8 48

Big-OA Grain of SaltRunning-time

In days

Input size n

T(n) = n 6

T(n) = 1000n 5.9

Assuming each operationtakes a nano-second, socomputer runs at 1 GHz

Page 49: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L8 49

Big-OA Grain of Salt

In fact, 1000n 5.9 only catches up to n 6 when 1000n 5.9 = n 6, i.e.:

1000= n 0.1, i.e.:

n = 100010 = 1030 operations

= 1030/109 = 1021 seconds 1021/(3x107) 3x1013 years

3x1013/(2x1010)

1500 universe lifetimes!

Page 50: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

AlgorithmsExtra-1

• The world of computation can be subdivided into three classes:

• Tractable Problems

– Polynomial worst-case complexity (P Class)

• (nc), c ≥ 1 constant [Eg.Bubble Sort Algorithm is (n2)]

• Intractable Problems (NP Class)

– Exponential worst-case complexity (E Class)

• (cn), c ≥ 1 constant [Eg.Satisfiability Algorithm is (2n)]

– Factorial worst-case complexity (F Class)

• (n!), [Eg.Traveling Salesman Algorithm is (n!)]

• Unsolvable Problems

– No algorithms exists for solving them

• Halting Problem

Page 51: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

AlgorithmsExtra-2

• NP (Nondeterministic Polinomial) Class: Any given solution to L can be verified quickly (in polynomial time).

• There is a very large and important class of problems that – we know how to solve exponentially or factorially,

– we don't know how to solve polynomially, and

– we don't know if they can be solved polynomially at all

Page 52: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

AlgorithmsExtra-3

• Definition: A transform (that transforms a problem P to a problem R) is an algorithm T such that: – The algorithm T takes polynomial time

– The input of T is IP, and the output of T is IR

– Answer(QP,IP)=Answer(QR,IR)

• Definition: We say that problem problem P reduces to problem R if there exists a transform from P to R.

• NP-complete Class: P NP class reduces to NP-complete problem R.

Page 53: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

Part-2Number Theory

• Branch of Math dealing with integers and their properties

• Before the dawn of computers, many viewed number theory as last bastion of “pure math” which could not be useful

• No longer the case. Number theory is crucial for encryption algorithms. Of utmost importance to everyone from Bill Gates, to the CIA, to Osama Bin Laden.

Page 54: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L9 54

Divisors

DEF: Let a, b and c be integers such that

a = b ·c .

Then b and c are said to divide (or are factors) of a, while a is said to be a multiple of b (as well as of c). The pipe symbol “|” denotes “divides” so the situation is summarized by:

b | a c | a .

NOTE: Students find notation confusing, and think of “|” in the reverse fashion, perhaps confuse pipe with forward slash “/”

Page 55: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L9 55

Divisors.Examples

Q: Which of the following is true?

1. 77 | 7

2. 7 | 77

3. 24 | 24

4. 0 | 24

5. 24 | 0

Page 56: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L9 56

Divisors.Examples

A:

1. 77 | 7: false bigger number can’t divide smaller positive number

2. 7 | 77: true because 77 = 7 · 11

3. 24 | 24: true because 24 = 24 · 1

4. 0 | 24: false, only 0 is divisible by 0

5. 24 | 0: true, 0 is divisible by every number (0 = 24 · 0)

Page 57: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L9 57

Formula for Number of Multiples up to given n

Q: How many positive multiples of 15 are less than 100?

Page 58: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L9 58

Formula for Number of Multiples up to given n

A: Just list them:

15, 30, 45, 60, 75, 80, 95.

Therefore the answer is 6.

Q: How many positive multiples of 15 are less than 1,000,000?

Page 59: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L9 59

Formula for Number of Multiples up to Given n

A: Listing is too much of a hassle. Since 1 out of 15 numbers is a multiple of 15, if 1,000,000 were were divisible by 15, answer would be exactly 1,000,000/15. However, since 1,000,000 isn’t divisible by 15, need to round down to the highest multiple of 15 less than 1,000,000 so answer is 1,000,000/15.

In general: The number of d-multiples less than N is given by:

|{m Z+ | d |m and m N }| = N/d

Page 60: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L9 60

Divisor Theorem

THM: Let a, b, and c be integers. Then:

1. a|b a|c a|(b + c )

2. a|b a|bc

3. a|b b|c a|c

EG:

4. 17|34 17|170 17|204

5. 17|34 17|340

6. 6|12 12|144 6 | 144

Page 61: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L9 61

Divisor Theorem.Proof of no. 2

In general, such statements are proved by starting from the definitions and manipulating to get the desired results.

EG. Proof of no. 2 (a|b a|bc ):

Suppose a|b. By definition, there is a number m such that b = am. Multiply both sides by c to get bc = amc = a (mc ). Consequently, bc has been expressed as a times the integer mc so by definition of “|”, a|bc �

Page 62: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L9 62

Prime Numbers

DEF: A number n 2 prime if it is only divisible by 1 and itself. A number n 2 which isn’t prime is called composite.

Q: Which of the following are prime?

0,1,2,3,4,5,6,7,8,9,10

Page 63: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L9 63

Prime Numbers

A: 0, and 1 not prime since not positive and greater or equal to 2

2 is prime as 1 and 2 are only factors

3 is prime as 1 and 3 are only factors.

4,6,8,10 not prime as non-trivially divisible by 2.

5, 7 prime.

9 = 3 · 3 not prime.

Last example shows that not all odd numbers are prime.

Page 64: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L9 64

Fundamental Theorem of Arithmetic

THM: Any number n 2 is expressible as a unique product of 1 or more prime numbers.

Note: prime numbers are considered to be “products” of 1 prime.

We’ll need induction and some more number theory tools to prove this.

Q: Express each of the following number as a product of primes: 22, 100, 12, 17

Page 65: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L9 65

Fundamental Theorem of Arithmetic

A: 22 = 2·11, 100 = 2·2·5·5,

12 = 2·2·3, 17 = 17

Convention: Want 1 to also be expressible as a product of primes. To do this we define 1 to be the “empty product”. Just as the sum of nothing is by convention 0, the product of nothing is by convention 1.

Unique factorization of 1 is the factorization that uses no prime numbers at all.

Page 66: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L9 66

Primality TestingPrime numbers are very important in encryption

schemes. Essential to be able to verify if a number is prime or not. It turns out that this is quite a difficult problem. First try:

boolean isPrime(integer n)

if ( n < 2 ) return false

for(i = 2 to n -1)

if( i |n ) // “divides”! not disjunction

return false

return true

Q: What is the running time of this algorithm?

Page 67: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L9 67

Primality Testing

A: Assuming divisibility testing is a basic operation –so O (1) (this is an invalid assumption)– then above primality testing algorithm is O (n).

Q: What is the running time in terms of the input size k ?

Page 68: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L9 68

Primality Testing

A: Consider n = 1,000,000. The input size is k = 7 because n was described using only 7 digits. In general we have

n = O (10k ). Therefore, running time is O (10k ). REALLY HORRIBLE!

Q: Can we improve algorithm?

Page 69: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L9 69

Primality Testing

A:

• Don’t try number bigger than n/2

• After trying 2, don’t try any other even numbers, because know n is odd by this point.

• In general, try only smaller prime numbers

• In fact, only need to try to divide by prime numbers no larger than as we’ll see next:

n

Page 70: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L9 70

Primality Testing

LEMMA: If n is a composite, then its smallest prime factor is

Proof (by contradiction). Suppose the smallest prime factor is > . Then by the fundamental theorem of arithmetic we can decompose n = pqx where p and q are primes > and x is some integer. Therefore

implying that n>n, which is impossible showing that the original supposition was false and the theorem is correct. �

n

n

nnxxnnn

Page 71: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L9 71

Primality Testing.Example

EG: Test if 139 and 143 are prime.

List all primes up to and check if they divide the numbers.

2: Neither is even

3: Sum of digits trick: 1+3+9 = 13, 1+4+3 = 8 so neither divisible by 3

5: Don’t end in 0 or 5

7: 140 divisible by 7 so neither div. by 7

11: Alternating sum trick: 1-3+9 = 7 so 139 not div. By 11. 1-4+3 = 0 so 143 is divisible by 11.

STOP! Next prime 13 need not be examined since bigger than .

Conclude: 139 is prime, 143 is composite.

n

Page 72: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L9 72

Division

Remember long division?

117 = 31·3 + 24

a = dq + r

311731

24

93

q the quotient

r the remainder

d the divisor

a the dividend

Page 73: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L9 73

Division

THM: Let a be an integer, and d be a positive integer. There are unique integers q, r with r {0,1,2,…,d-1} satisfying

a = dq + r

The proof is a simple application of long-division. The theorem is called the division algorithm though really, it’s long division that’s the algorithm, not the theorem.

Page 74: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L9 74

Greatest Common DivisorRelatively Prime

DEF Let a,b be integers, not both zero. The greatest common divisor of a and b (or gcd(a,b) ) is the biggest number d which divides both a and b.

Equivalently: gcd(a,b) is smallest number which divisibly by any x dividing both a and b.

DEF: a and b are said to be relatively prime if gcd(a,b) = 1, so no prime common divisors.

Page 75: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L9 75

Greatest Common DivisorRelatively Prime

Q: Find the following gcd’s:

1. gcd(11,77)

2. gcd(33,77)

3. gcd(24,36)

4. gcd(24,25)

Page 76: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L9 76

Greatest Common DivisorRelatively Prime

A:

1. gcd(11,77) = 11

2. gcd(33,77) = 11

3. gcd(24,36) = 12

4. gcd(24,25) = 1. Therefore 24 and 25 are relatively prime.

NOTE: A prime number are relatively prime to all other numbers which it doesn’t divide.

Page 77: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L9 77

Greatest Common DivisorRelatively Prime

EG: More realistic. Find gcd(98,420).

Find prime decomposition of each number and find all the common factors:

98 = 2·49 = 2·7·7

420 = 2·210 = 2·2·105 = 2·2·3·35

= 2·2·3·5·7

Underline common factors: 2·7·7, 2·2·3·5·7

Therefore, gcd(98,420) = 14

Page 78: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L9 78

Greatest Common DivisorRelatively Prime

Pairwise relatively prime: the numbers a, b, c, d, … are said to be pairwise relatively prime if any two distinct numbers in the list are relatively prime.

Q: Find a maximal pairwise relatively prime subset of

{ 44, 28, 21, 15, 169, 17 }

Page 79: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L9 79

Greatest Common DivisorRelatively Prime

A: A maximal pairwise relatively prime subset of {44, 28, 21, 15, 169, 17} :

{17, 169, 28, 15} is one answer.

{17, 169, 44, 15} is another answer.

Page 80: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L9 80

Least Common Multiple

DEF: The least common multiple of a, and b (lcm(a,b) ) is the smallest number m which is divisible by both a and b.

Equivalently: lcm(a,b) is biggest number which divides any x divisible by both a and b

Q: Find the lcm’s:

1. lcm(10,100)

2. lcm(7,5)

3. lcm(9,21)

Page 81: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L9 81

Least Common Multiple

A:

1. lcm(10,100) = 100

2. lcm(7,5) = 35

3. lcm(9,21) = 63

THM: lcm(a,b) = ab / gcd(a,b)

Page 82: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L9 82

lcm in terms of gcdProof

THM: lcm(a,b) = ab / gcd(a,b)

Proof. Let g = gcd(a,b).

Page 83: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L9 83

lcm in terms of gcdProof

THM: lcm(a,b) = ab / gcd(a,b)

Proof. Let g = gcd(a,b). Factor a and b using g: a = gx, b = gy where x and y are relatively prime.

Page 84: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L9 84

lcm in terms of gcdProof

THM: lcm(a,b) = ab / gcd(a,b)

Proof. Let g = gcd(a,b). Factor a and b using g: a = gx, b = gy where x and y are relatively prime. Therefore, ab/gcd(a,b) = gxgy/g = gxy. Notice that a and b both divide gxy. On the other hand, let m be divisible by both a and b.

Page 85: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L9 85

lcm in terms of gcdProof

THM: lcm(a,b) = ab / gcd(a,b)

Proof. (continued) On the other hand, let m be divisible by both a and b: So m/g is divisible by both x and y. As x and y have no common prime factors, the fundamental theorem of arithmetic implies that m/g must be divisible by xy.

Page 86: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L9 86

lcm in terms of gcdProof

THM: lcm(a,b) = ab / gcd(a,b)

Proof. (continued) …m/g must be divisible by xy. Therefore, m must be divisible by gxy. This shows that any multiple of a and b is bigger than gxy so by definition, gxy = ab/gcd(a,b) is the lcm.

Page 87: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L9 87

Modular Arithmetic

There are two types of “mod” (confusing):

• the mod function– Inputs a number a and a base b– Outputs a mod b a number between 0 and b –1 inclusive– This is the remainder of ab– Similar to Java’s % operator.

• the (mod) congruence– Relates two numbers a, a’ to each other relative some

base b– a a’ (mod b) means that a and a’ have the same

remainder when dividing by b

Page 88: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L9 88

mod function

Similar to Java’s “%” operator except that answer is always positive. E.G.

-10 mod 3 = 2, but in Java –10%3 = -1.

Q: Compute

1. 113 mod 24

2. -29 mod 7

Page 89: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L9 89

mod function

A: Compute

1. 113 mod 24:

2. -29 mod 7

11324

6

Page 90: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L9 90

mod function

A: Compute

1. 113 mod 24:

2. -29 mod 7

411324

17

96

Page 91: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L9 91

mod function

A: Compute

1. 113 mod 24:

2. -29 mod 7

411324

17

96

297

Page 92: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L9 92

mod function

A: Compute

1. 113 mod 24:

2. -29 mod 7

411324

17

96

5297

356

Page 93: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L9 93

(mod) congruenceFormal Definition

DEF: Let a,a’ be integers and b be a positive integer. We say that a is congruent to a’ modulo b (denoted by a a’ (mod b) ) iff b | (a – a’ ).

Equivalently: a mod b = a’ mod b

Q: Which of the following are true?

1. 3 3 (mod 17)

2. 3 -3 (mod 17)

3. 172 177 (mod 5)

4. -13 13 (mod 26)

Page 94: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L9 94

(mod) congruence

A:

1. 3 3 (mod 17) True. any number is congruent to itself (3-3 = 0, divisible by all)

2. 3 -3 (mod 17) False. (3-(-3)) = 6 isn’t divisible by 17.

3. 172 177 (mod 5) True. 172-177 = -5 is a multiple of 5

4. -13 13 (mod 26) True: -13-13 = -26 divisible by 26.

Page 95: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L9 95

(mod) congruenceIdentities

The (mod) congruence is useful for manipulating expressions involving the mod function. It lets us view modular arithmetic relative a fixed base, as creating a number system inside of which all the calculations can be carried out.

• a mod b a (mod b)

• Suppose a a’ (mod b) and c c’ (mod b) Then:– a+c (a’+c’ )(mod b)– ac a’c’ (mod b)– a k a’ k (mod b)

Page 96: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L9 96

Modular arithmeticharder examples

Q: Compute the following.

1. 3071001 mod 102

2. (-45 · 77) mod 17

3. 11mod10

23

4

i

i

Page 97: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L9 97

Modular arithmeticharder examples

A: Use the previous identities to help simplify:

1. Using multiplication rules, before multiplying (or exponentiating) can reduce modulo 102:

3071001 mod 102 3071001 (mod 102)

11001 (mod 102) 1 (mod 102). Therefore, 3071001 mod 102 = 1.

Page 98: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L9 98

Modular arithmeticharder examples

A: Use the previous identities to help simplify:

2. Repeatedly reduce after each multiplication:

(-45·77) mod 17 (-45·77) (mod 17)

(6·9) (mod 17) 54 (mod 17) 3 (mod 17). Therefore (-45·77) mod 17 = 3.

Page 99: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L9 99

Modular arithmeticharder examples

A: Use the previous identities to help simplify:

3. Similarly, before taking sum can simplify modulo 11:

Therefore, the answer is 0.

)11(mod0)11)(mod11...1111(

)11(mod)1()11(mod1011mod1023

4

23

4

23

4

i

i

i

i

i

i

Page 100: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L9 100

Proving Modular Identities

We first need:

THM: a a’ (mod b) k a = a’ + kb

Proof. direction: If a = a’ + kb, then (a-a’ ) = kb so that b | (a-a’ ) which by definition means that a a’ (mod b)

direction: If a a’ (mod b), by definition

b | (a-a’ ) so for some k we have (a-a’ ) = kb which becomes a = a’ + kb �

This is a handy little theorem as we’ll see next:

Page 101: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

L9 101

Proving Modular Identities

Prove the identity

a a’ (mod b) c c’ (mod b)

--- ac a’ c’ (mod b)

Proof. By the previous, we can assume that there are k and l such that

a = a’ + bk and c = c’ + bl

Thus ac = (a’ + bk)(c’ + bl )

= a’c’ +b(kc’+la’+bkl). Therefore

(ac-a’c’ ) = b(kc’+la’+bkl) is divisible by b and hence by definition, ac a’ c’ (mod b)

Page 102: Discrete Math and Its Application to Computer Science UBİ 501 Lecture - 3 İlker Kocabaş E.Ü Uluslararası Bilgisayar Enstitüsü Bornova - İzmir

Additional Topics

• Number theory