67
CSCI 2824, Discrete Structures Fall 2017 Tony Wong Lecture 1: Introduction and Binary Arithmetic 1

CSCI 2824, Discrete Structures Fall 2017 Tony Wongtonyewong/courses/CSCI2824/csci2824_lecture01...What does “Discrete Structures” mean? It’s the computer sciency way of saying…

  • Upload
    lediep

  • View
    217

  • Download
    1

Embed Size (px)

Citation preview

Page 1: CSCI 2824, Discrete Structures Fall 2017 Tony Wongtonyewong/courses/CSCI2824/csci2824_lecture01...What does “Discrete Structures” mean? It’s the computer sciency way of saying…

CSCI 2824, Discrete StructuresFall 2017Tony Wong

Lecture 1: Introduction andBinary Arithmetic

1

Page 2: CSCI 2824, Discrete Structures Fall 2017 Tony Wongtonyewong/courses/CSCI2824/csci2824_lecture01...What does “Discrete Structures” mean? It’s the computer sciency way of saying…

What does “Discrete Structures” mean?

2

Page 3: CSCI 2824, Discrete Structures Fall 2017 Tony Wongtonyewong/courses/CSCI2824/csci2824_lecture01...What does “Discrete Structures” mean? It’s the computer sciency way of saying…

What does “Discrete Structures” mean?It’s the computer sciency way of saying… “discrete math”

3

Page 4: CSCI 2824, Discrete Structures Fall 2017 Tony Wongtonyewong/courses/CSCI2824/csci2824_lecture01...What does “Discrete Structures” mean? It’s the computer sciency way of saying…

What does “Discrete Structures” mean?It’s the computer sciency way of saying… “discrete math”

Okay… then what is “discrete math”?

4

Page 5: CSCI 2824, Discrete Structures Fall 2017 Tony Wongtonyewong/courses/CSCI2824/csci2824_lecture01...What does “Discrete Structures” mean? It’s the computer sciency way of saying…

What does “Discrete Structures” mean?It’s the computer sciency way of saying… “discrete math”

Okay… then what is “discrete math”?

Well, there’s continuous math- like derivatives and integrals

5

Page 6: CSCI 2824, Discrete Structures Fall 2017 Tony Wongtonyewong/courses/CSCI2824/csci2824_lecture01...What does “Discrete Structures” mean? It’s the computer sciency way of saying…

What does “Discrete Structures” mean?It’s the computer sciency way of saying… “discrete math”

Okay… then what is “discrete math”?

Well, there’s continuous math- like derivatives and integrals

and then there’s discrete math- like counting, sorting, enumeration

6

Page 7: CSCI 2824, Discrete Structures Fall 2017 Tony Wongtonyewong/courses/CSCI2824/csci2824_lecture01...What does “Discrete Structures” mean? It’s the computer sciency way of saying…

Graph theory: Bridges of KonigsbergThe city of Konigsberg has two islands formed by a river with seven bridges connecting the islands and the mainland.

Is there a path that traverses each bridge exactly once?

7

Page 8: CSCI 2824, Discrete Structures Fall 2017 Tony Wongtonyewong/courses/CSCI2824/csci2824_lecture01...What does “Discrete Structures” mean? It’s the computer sciency way of saying…

Logic“Two doors” riddle:

8

Page 9: CSCI 2824, Discrete Structures Fall 2017 Tony Wongtonyewong/courses/CSCI2824/csci2824_lecture01...What does “Discrete Structures” mean? It’s the computer sciency way of saying…

Logic“Two doors” riddle:

- Two doors, guarded by two creatures.

- One door goes where you want to, but the other leads to certain death.

- One always lies, and one always tells the truth.

- How can you ask only one of them only one question to discover which door is which?

9

Page 10: CSCI 2824, Discrete Structures Fall 2017 Tony Wongtonyewong/courses/CSCI2824/csci2824_lecture01...What does “Discrete Structures” mean? It’s the computer sciency way of saying…

Logic

“100 prisoners and a lightbulb” riddle:- There are 100 prisoners in separate cells.- There is a room they can visit one at a time.- There is a light in the room that they can turn

on or off.- Any of the prisoners can claim that all of them

have visited the room at least once.- If they’re right, all the prisoners are set free.- If they’re wrong, they’re all executed.

10

Page 11: CSCI 2824, Discrete Structures Fall 2017 Tony Wongtonyewong/courses/CSCI2824/csci2824_lecture01...What does “Discrete Structures” mean? It’s the computer sciency way of saying…

Logic

“100 prisoners and a lightbulb” riddle:- There are 100 prisoners in separate cells.- There is a room they can visit one at a time.- There is a light in the room that they can turn

on or off.- Any of the prisoners can claim that all of them

have visited the room at least once.- If they’re right, all the prisoners are set free.- If they’re wrong, they’re all executed.

- How can the prisoners conspire just once at the beginning, and then develop a strategy to be set free?

11

Page 12: CSCI 2824, Discrete Structures Fall 2017 Tony Wongtonyewong/courses/CSCI2824/csci2824_lecture01...What does “Discrete Structures” mean? It’s the computer sciency way of saying…

Monty Hall problem: “Let’s Make a Deal”- There are three doors.- One has a nice prize behind it…

Discrete Probability

12

Page 13: CSCI 2824, Discrete Structures Fall 2017 Tony Wongtonyewong/courses/CSCI2824/csci2824_lecture01...What does “Discrete Structures” mean? It’s the computer sciency way of saying…

Monty Hall problem: “Let’s Make a Deal”- There are three doors.- One has a nice prize behind it… - … and the other two have goats.- You get to pick a door and will be awarded

the prize behind it.- Then the host reveals a goat behind one of the other two doors.- You now have the option to stick with your original door or switch.

- Should you stick with your original door or switch? Or does it not matter?

Discrete Probability

13

Page 14: CSCI 2824, Discrete Structures Fall 2017 Tony Wongtonyewong/courses/CSCI2824/csci2824_lecture01...What does “Discrete Structures” mean? It’s the computer sciency way of saying…

This is a good example of what makes discrete structures/math unique:

That we’re dealing with discrete events: - the cash is behind door 1, 2 or 3.

As opposed to continuous events: - the cash is hiding at one of the real numbers between 0.5 and 3.5. (you’d have pretty much 0 probability of winning that game, depending on the rounding…)

Discrete Probability

14

Page 15: CSCI 2824, Discrete Structures Fall 2017 Tony Wongtonyewong/courses/CSCI2824/csci2824_lecture01...What does “Discrete Structures” mean? It’s the computer sciency way of saying…

This is a good example of what makes discrete structures/math unique:

That we’re dealing with discrete events: - the cash is behind door 1, 2 or 3.

As opposed to continuous events: - the cash is hiding at one of the real numbers between 0.5 and 3.5. (you’d have pretty much 0 probability of winning that game, depending on the rounding…)

Real applications: (just some vague examples)

● Complexity of algorithms (100 prisoners and a light bulb)● Anything related to data science

Discrete Probability

15

Page 16: CSCI 2824, Discrete Structures Fall 2017 Tony Wongtonyewong/courses/CSCI2824/csci2824_lecture01...What does “Discrete Structures” mean? It’s the computer sciency way of saying…

RecursionTower of Hanoi

Move the stack of discs from one pegto another without placing a larger disc on top of a smaller one.

16

Page 17: CSCI 2824, Discrete Structures Fall 2017 Tony Wongtonyewong/courses/CSCI2824/csci2824_lecture01...What does “Discrete Structures” mean? It’s the computer sciency way of saying…

RecursionTower of Hanoi

Move the stack of discs from one pegto another without placing a larger disc on top of a smaller one.

Real applications:● Recursions often yield more readable code, as well as elegant

solutions● Recursions are often frowned upon because of stack memory issues● Still, recursions can shed some light on how a nice “for” loops can

work17

Page 18: CSCI 2824, Discrete Structures Fall 2017 Tony Wongtonyewong/courses/CSCI2824/csci2824_lecture01...What does “Discrete Structures” mean? It’s the computer sciency way of saying…

Number Theory

Puzzles: Show that

● all four-digit palindromic numbers are divisible by 11

18

Page 19: CSCI 2824, Discrete Structures Fall 2017 Tony Wongtonyewong/courses/CSCI2824/csci2824_lecture01...What does “Discrete Structures” mean? It’s the computer sciency way of saying…

Number Theory

Puzzles: Show that

● all four-digit palindromic numbers are divisible by 11

● if you repeat a three-digit number twice to obtain a six-digit number, the result will be divisible by 7, 11, and 13. Furthermore, if you divide the six-digit number by 7, 11, and 13 you'll get back the original three-digit number.

19

Page 20: CSCI 2824, Discrete Structures Fall 2017 Tony Wongtonyewong/courses/CSCI2824/csci2824_lecture01...What does “Discrete Structures” mean? It’s the computer sciency way of saying…

Number Theory

Puzzles: Show that

● all four-digit palindromic numbers are divisible by 11

● if you repeat a three-digit number twice to obtain a six-digit number, the result will be divisible by 7, 11, and 13. Furthermore, if you divide the six-digit number by 7, 11, and 13 you'll get back the original three-digit number.

● if you choose a digit from 1-9 and repeat it three times to form a three-digit number, the result divided by the sum of the three digits will always be 37 20

Page 21: CSCI 2824, Discrete Structures Fall 2017 Tony Wongtonyewong/courses/CSCI2824/csci2824_lecture01...What does “Discrete Structures” mean? It’s the computer sciency way of saying…

Number Theory

Real applications:

● Public key encryption/RSA security

● Psuedorandom number generation super important, it turns out

● Hash functions

● Showing off to your parents/friends (depending on how cool your friends are)

21

Page 22: CSCI 2824, Discrete Structures Fall 2017 Tony Wongtonyewong/courses/CSCI2824/csci2824_lecture01...What does “Discrete Structures” mean? It’s the computer sciency way of saying…

Changing gear: Course LogisticsWhat you need…

● Mathematical curiosity…

… or at least not math-averse.

● Do some programming○ Expect most homework assignments

to include some Python component

22

Page 23: CSCI 2824, Discrete Structures Fall 2017 Tony Wongtonyewong/courses/CSCI2824/csci2824_lecture01...What does “Discrete Structures” mean? It’s the computer sciency way of saying…

Changing gear: Course LogisticsWhat you need…

● Mathematical curiosity…

… or at least not math-averse.

● Do some programming○ Expect most homework assignments

to include some Python component

● Some form of the book

○ Old/international versions/PDF are okay, butmake sure you have matched the appropriate sections

23

Page 24: CSCI 2824, Discrete Structures Fall 2017 Tony Wongtonyewong/courses/CSCI2824/csci2824_lecture01...What does “Discrete Structures” mean? It’s the computer sciency way of saying…

Changing gear: Course LogisticsStructure:

● Weekly homework assignments (40%)○ Half online via Moodle, half written

● Participation (10%)○ Tutorial problems

● Midterm exam (20%)

● Final exam (30%)

24

Page 25: CSCI 2824, Discrete Structures Fall 2017 Tony Wongtonyewong/courses/CSCI2824/csci2824_lecture01...What does “Discrete Structures” mean? It’s the computer sciency way of saying…

Changing gear: Course LogisticsStructure:

● Weekly homework assignments (40%)○ Half online via Moodle, half written

● Participation (10%)○ Tutorial problems

● Midterm exam (20%)

● Final exam (30%)

25

Moodle enrollment keys for our classes:

csci2824-002 (9a) → key is csci2824_F17_002csci2824-003 (11a) → key is csci2824_F17_003

Page 26: CSCI 2824, Discrete Structures Fall 2017 Tony Wongtonyewong/courses/CSCI2824/csci2824_lecture01...What does “Discrete Structures” mean? It’s the computer sciency way of saying…

Changing gear: Course LogisticsStructure:

● Weekly homework assignments (40%)○ Half online via Moodle, half written

● Participation (10%)○ Tutorial problems

● Midterm exam (20%)

● Final exam (30%)

26

Must have combined exam average > 50% to get a C- or better in the class.

Page 27: CSCI 2824, Discrete Structures Fall 2017 Tony Wongtonyewong/courses/CSCI2824/csci2824_lecture01...What does “Discrete Structures” mean? It’s the computer sciency way of saying…

Changing gear: Course LogisticsStructure:

● Weekly homework assignments (40%)○ Half online via Moodle, half written

● Participation (10%)○ Tutorial problems

● Midterm exam (20%)

● Final exam (30%)

● Keep track of things via the course webpage (Piazza)

● Read the syllabus for more details!

○ Especially regarding due date and collaboration policies

○ Let us know about special needs as soon as possible27

Must have combined exam average > 50% to get a C- or better in the class.

Page 28: CSCI 2824, Discrete Structures Fall 2017 Tony Wongtonyewong/courses/CSCI2824/csci2824_lecture01...What does “Discrete Structures” mean? It’s the computer sciency way of saying…

Communicating with PiazzaWe will use Piazza to manage all communications:

https://piazza.com/colorado/fall2017/csci2824

● Announcements and course materials (notes, supplemental material, the syllabus and other logistical notes) will be posted here

28

Page 29: CSCI 2824, Discrete Structures Fall 2017 Tony Wongtonyewong/courses/CSCI2824/csci2824_lecture01...What does “Discrete Structures” mean? It’s the computer sciency way of saying…

Communicating with PiazzaWe will use Piazza to manage all communications:

https://piazza.com/colorado/fall2017/csci2824

● Announcements and course materials (notes, supplemental material, the syllabus and other logistical notes) will be posted here

● You (yes, you!) can ask questions in an open forum

○ and responses can be posted by other students or instructors/CAs/graders

● Discuss assigned work (but of course do not post answers/vital code)

● Read the other questions before posting your own!

● If you have a question specific to one instructor, be sure to use the appropriate salutation (e.g., “Hey Chris, …” or “Hey Tony, …”)

Do not send us email! Send us message via Piazza instead. 29

Page 30: CSCI 2824, Discrete Structures Fall 2017 Tony Wongtonyewong/courses/CSCI2824/csci2824_lecture01...What does “Discrete Structures” mean? It’s the computer sciency way of saying…

Expectations● Come to class prepared, at least skim the material beforehand

● Be willing to contribute

○ To classroom discussion

○ As well as on Piazza (students helping one another is one of the reasons why we use it!)

● Be on time. If you are late, do not be disruptive

● If you use a laptop, sit in the back so you do not distract others (unless you have a documented special need)

○ More on this in a moment…

○ Handwritten notes and notes on a tablet are okay anywhere.

30

Page 31: CSCI 2824, Discrete Structures Fall 2017 Tony Wongtonyewong/courses/CSCI2824/csci2824_lecture01...What does “Discrete Structures” mean? It’s the computer sciency way of saying…

Expectations

Let’s talk laptops.

“Results showed that students who used laptops in class spent considerable time multitasking and that the laptop use posed a significant distraction to both users and fellow students. Most importantly, the level of laptop use was negatively related to several measures of student learning, including self-reported understanding of course material and overall course performance.”http://www.sciencedirect.com/science/article/pii/S0360131506001436Also: http://journals.sagepub.com/doi/pdf/10.1177/0956797616677314And: http://www.sciencedirect.com/science/article/pii/S0272775716303454 (... and others…) 31

Page 32: CSCI 2824, Discrete Structures Fall 2017 Tony Wongtonyewong/courses/CSCI2824/csci2824_lecture01...What does “Discrete Structures” mean? It’s the computer sciency way of saying…

About Me● Call me Tony. Or Dr. Wong if you’re more comfortable with that.

● First year teaching in CS.

● Before this, I was a postdoc at Penn State’s Earth and Environmental Systems Institute. And taught Earth Science.

● Taught throughout grad school in APPM.

● Research interests: applying statistics to climate science

● Office: ECOT 737

● Office hours: W Th 12:30-2pm / by appointment

● Email: For class: through Piazza only (this keeps things organized)

If necessary, be sure to make it clear to which instructor your Piazza message isspecific to in the salutation. 32

Page 33: CSCI 2824, Discrete Structures Fall 2017 Tony Wongtonyewong/courses/CSCI2824/csci2824_lecture01...What does “Discrete Structures” mean? It’s the computer sciency way of saying…

Enough chit chat. Let’s get to work!Binary Arithmetic● There is a nice overview of binary arithmetic available here:

http://www.cs.colorado.edu/~srirams/courses/csci2824-spr14/binaryLecture.html

33

Page 34: CSCI 2824, Discrete Structures Fall 2017 Tony Wongtonyewong/courses/CSCI2824/csci2824_lecture01...What does “Discrete Structures” mean? It’s the computer sciency way of saying…

Enough chit chat. Let’s get to work!Binary Arithmetic● There is a nice overview of binary arithmetic available here:

http://www.cs.colorado.edu/~srirams/courses/csci2824-spr14/binaryLecture.html

● We are most used to using decimal arithmetic (base-10)○ Counting on your fingers or toes?

● Why do we care?○ Computers are good are knowing whether something is “on” (1) or “off” (0)

○ Two options → base-2 system

34

Page 35: CSCI 2824, Discrete Structures Fall 2017 Tony Wongtonyewong/courses/CSCI2824/csci2824_lecture01...What does “Discrete Structures” mean? It’s the computer sciency way of saying…

Enough chit chat. Let’s get to work!Binary Arithmetic● There is a nice overview of binary arithmetic available here:

http://www.cs.colorado.edu/~srirams/courses/csci2824-spr14/binaryLecture.html

● We are most used to using decimal arithmetic (base-10)○ Counting on your fingers or toes?

● Why do we care?○ Computers are good are knowing whether something is “on” (1) or “off” (0)

○ Two options → base-2 system

● Example: holding down Ctrl (0/1)? Alt (0/1)? Del (0/1)?

⇒ Abort only if (111)35

Page 36: CSCI 2824, Discrete Structures Fall 2017 Tony Wongtonyewong/courses/CSCI2824/csci2824_lecture01...What does “Discrete Structures” mean? It’s the computer sciency way of saying…

● For example:The decimal number 12045 implies that we have:

● For another example:The binary number 11011 follows the same pattern, but with powers of 2 instead of 10.

So what is this in decimal form? 36

Page 37: CSCI 2824, Discrete Structures Fall 2017 Tony Wongtonyewong/courses/CSCI2824/csci2824_lecture01...What does “Discrete Structures” mean? It’s the computer sciency way of saying…

● For example:The decimal number 12045 implies that we have:

5 x 100 + 4 x 101

+ 0 x 102

+ 2 x 103

+ 1 x 104

= 12045

● For another example:The binary number 11011 follows the same pattern, but with powers of 2 instead of 10.

So what is this in decimal form? 37

Page 38: CSCI 2824, Discrete Structures Fall 2017 Tony Wongtonyewong/courses/CSCI2824/csci2824_lecture01...What does “Discrete Structures” mean? It’s the computer sciency way of saying…

● For another example:The binary number 11011 follows the same pattern, but with powers of 2 instead of 10.

So what is this in decimal form?

We have:

38

Page 39: CSCI 2824, Discrete Structures Fall 2017 Tony Wongtonyewong/courses/CSCI2824/csci2824_lecture01...What does “Discrete Structures” mean? It’s the computer sciency way of saying…

● For another example:The binary number 11011 follows the same pattern, but with powers of 2 instead of 10.

So what is this in decimal form?

We have:

1 x 20

+ 1 x 21

+ 0 x 22

+ 1 x 23

+ 1 x 24

= 1 + 2 + 0 + 8 + 16

= 27 39

Page 40: CSCI 2824, Discrete Structures Fall 2017 Tony Wongtonyewong/courses/CSCI2824/csci2824_lecture01...What does “Discrete Structures” mean? It’s the computer sciency way of saying…

● Some general rules:

1. We chop off leading 0s

a. Just like the decimal number 0123 is written as 123, the binary number 0011011 is written as 11011.

2. Gosh, it would be cumbersome to keep writing “the decimal number this and the binary number that”. Surely there must be an easier way!

40

Page 41: CSCI 2824, Discrete Structures Fall 2017 Tony Wongtonyewong/courses/CSCI2824/csci2824_lecture01...What does “Discrete Structures” mean? It’s the computer sciency way of saying…

● Some general rules:

1. We chop off leading 0s

a. Just like the decimal number 0123 is written as 123, the binary number 0011011 is written as 11011.

2. Gosh, it would be cumbersome to keep writing “the decimal number this and the binary number that”. Surely there must be an easier way!

a. There is! We write the base (10 for decimal, 2 for binary, e.g.) as a subscript next to the number.

b. So from the previous example,

41

Page 42: CSCI 2824, Discrete Structures Fall 2017 Tony Wongtonyewong/courses/CSCI2824/csci2824_lecture01...What does “Discrete Structures” mean? It’s the computer sciency way of saying…

● Start from right (the ones place) and move to the left.

Converting the number N from decimal to binary

42

Page 43: CSCI 2824, Discrete Structures Fall 2017 Tony Wongtonyewong/courses/CSCI2824/csci2824_lecture01...What does “Discrete Structures” mean? It’s the computer sciency way of saying…

● Start from right (the ones place) and move to the left.● If the first digit is odd, then the first bit is a 1. Otherwise, it’s a 0.

○ Reset N → (N-1) / 2 if N was odd.○ Reset N → N/2 if N was even.

Converting the number N from decimal to binary

43

Page 44: CSCI 2824, Discrete Structures Fall 2017 Tony Wongtonyewong/courses/CSCI2824/csci2824_lecture01...What does “Discrete Structures” mean? It’s the computer sciency way of saying…

● Start from right (the ones place) and move to the left.● If the first digit is odd, then the first bit is a 1. Otherwise, it’s a 0.

○ Reset N → (N-1) / 2 if N was odd.○ Reset N → N/2 if N was even.

● Move to the next bit to the left.● Repeat procedure until N either is 0 or 1.

Converting the number N from decimal to binary

44

Page 45: CSCI 2824, Discrete Structures Fall 2017 Tony Wongtonyewong/courses/CSCI2824/csci2824_lecture01...What does “Discrete Structures” mean? It’s the computer sciency way of saying…

● Start from right (the ones place) and move to the left.● If the first digit is odd, then the first bit is a 1. Otherwise, it’s a 0.

○ Reset N → (N-1) / 2 if N was odd.○ Reset N → N/2 if N was even.

● Move to the next bit to the left.● Repeat procedure until N either is 0 or 1.

● Example: Convert 2824 from decimal to binary.

Converting the number N from decimal to binary

45

Page 46: CSCI 2824, Discrete Structures Fall 2017 Tony Wongtonyewong/courses/CSCI2824/csci2824_lecture01...What does “Discrete Structures” mean? It’s the computer sciency way of saying…

● Example: Convert 2824 from decimal to binary.○ First digit is even, so first bit is a 0.

■ Next iteration, we have 2824/2 = 1412.

Converting the number N from decimal to binary

46

Page 47: CSCI 2824, Discrete Structures Fall 2017 Tony Wongtonyewong/courses/CSCI2824/csci2824_lecture01...What does “Discrete Structures” mean? It’s the computer sciency way of saying…

● Example: Convert 2824 from decimal to binary.Converting the number N from decimal to binary

47

Page 48: CSCI 2824, Discrete Structures Fall 2017 Tony Wongtonyewong/courses/CSCI2824/csci2824_lecture01...What does “Discrete Structures” mean? It’s the computer sciency way of saying…

● Example: Convert 2824 from decimal to binary.○ First digit is even, so first bit is a 0.

■ Next iteration, we have 2824/2 = 1412.○ First digit is even, so second bit is a 0.

■ Next iteration, we have 1412/2 = 706.○ First digit is even, so third bit is 0.

■ Next iteration, we have 706/2 = 353.○ First digit is odd, so fourth bit is 1.

■ Next iteration, we have (353-1)/2 = 176.○ First digit is even, so fifth bit is 0.

■ Next iteration, we have 176/2 = 88.○ First digit is even, so sixth bit is 0. ○ … eventually, find 282410 = 1011000010002

Converting the number N from decimal to binary

48

Page 49: CSCI 2824, Discrete Structures Fall 2017 Tony Wongtonyewong/courses/CSCI2824/csci2824_lecture01...What does “Discrete Structures” mean? It’s the computer sciency way of saying…

● We can!○ First bit right of the “radix point” represents ½.○ Second bit on the right represents ¼.○ Third bit represents ⅛.○ … and so on.

Representing fractions as binary

49

Page 50: CSCI 2824, Discrete Structures Fall 2017 Tony Wongtonyewong/courses/CSCI2824/csci2824_lecture01...What does “Discrete Structures” mean? It’s the computer sciency way of saying…

● We can!○ First bit right of the “radix point” represents ½.○ Second bit on the right represents ¼.○ Third bit represents ⅛.○ … and so on.

● Example: Convert 0.75 from decimal to binary.

Representing fractions as binary

50

Page 51: CSCI 2824, Discrete Structures Fall 2017 Tony Wongtonyewong/courses/CSCI2824/csci2824_lecture01...What does “Discrete Structures” mean? It’s the computer sciency way of saying…

● We can!○ First bit right of the “radix point” represents ½.○ Second bit on the right represents ¼.○ Third bit represents ⅛.○ … and so on.

● Example: Convert 0.75 from decimal to binary.

○ 0.75 = ¾ = ½ + ¼

○ 0.7510 = 0.112

Representing fractions as binary

51

Page 52: CSCI 2824, Discrete Structures Fall 2017 Tony Wongtonyewong/courses/CSCI2824/csci2824_lecture01...What does “Discrete Structures” mean? It’s the computer sciency way of saying…

● A tougher example: Convert 0.875 from decimal to binary.

○ We need a better algorithm, like for the big numbers:

■ Multiply N by 2. Next bit is the digit in the ones place.

■ Proceed with new N as the part to the right of the decimal point.

■ Continue until you have 0 remaining.

Representing fractions as binary

52

Page 53: CSCI 2824, Discrete Structures Fall 2017 Tony Wongtonyewong/courses/CSCI2824/csci2824_lecture01...What does “Discrete Structures” mean? It’s the computer sciency way of saying…

● A tougher example: Convert 0.875 from decimal to binary.

○ We need a better algorithm, like for the big numbers:

■ Multiply N by 2. Next bit is the digit in the ones place.

■ Proceed with new N as the part to the right of the decimal point.

■ Continue until you have 0 remaining.

○ Quick check: does this work for 0.7510 = 0.112 ?

Representing fractions as binary

53

Page 54: CSCI 2824, Discrete Structures Fall 2017 Tony Wongtonyewong/courses/CSCI2824/csci2824_lecture01...What does “Discrete Structures” mean? It’s the computer sciency way of saying…

● A tougher example: Convert 0.875 from decimal to binary.

○ We need a better algorithm, like for the big numbers:

■ Multiply N by 2. Next bit is the digit in the ones place.

■ Proceed with new N as the part to the right of the decimal point.

■ Continue until you have 0 remaining.

○ 0.875 * 2 = 1.75, so first bit right of the radix point is a 1.

■ Continue with 0.75.

○ 0.75 * 2 = 1.5, so next bit is a 1.

■ Continue with 0.5.

○ 0.5 * 2 = 1.0, so next bit is a 1.

■ Continue with 0. → Exit → Left with 0.87510 = 0.1112

Representing fractions as binary

54

Page 55: CSCI 2824, Discrete Structures Fall 2017 Tony Wongtonyewong/courses/CSCI2824/csci2824_lecture01...What does “Discrete Structures” mean? It’s the computer sciency way of saying…

Representing fractions as binary● Example: Convert 123.321 from decimal to binary.

55

Page 56: CSCI 2824, Discrete Structures Fall 2017 Tony Wongtonyewong/courses/CSCI2824/csci2824_lecture01...What does “Discrete Structures” mean? It’s the computer sciency way of saying…

● Example: Convert 123.321 from decimal to binary.

○ Do the part left of the decimal first.

■ 123 → Odd, so first bit is a 1. Proceed with (123-1)/2 = 61.

Representing fractions as binary

56

Page 57: CSCI 2824, Discrete Structures Fall 2017 Tony Wongtonyewong/courses/CSCI2824/csci2824_lecture01...What does “Discrete Structures” mean? It’s the computer sciency way of saying…

● Example: Convert 123.321 from decimal to binary.

○ Do the part left of the decimal first.

■ 123 → Odd, so first bit is a 1. Proceed with (123-1)/2 = 61.

■ 61 → Odd, so next bit is a 1. Proceed with (61-1)/2 = 30.

■ 30 → Even, so next bit is 0. Proceed with 30/2 = 15.

■ 15 → Odd, so next bit is a 1. Proceed with (15-1)/2 = 7.

■ 7 → Odd, so next bit is a 1. Proceed with (7-1)/2 = 3.

■ 3 → Odd, so next bit is a 1. Proceed with (3-1)/2 = 1.

■ 1 is a 1, so last bit is a 1.

■ Put it all together: 12310 = 11110112

Representing fractions as binary

57

Page 58: CSCI 2824, Discrete Structures Fall 2017 Tony Wongtonyewong/courses/CSCI2824/csci2824_lecture01...What does “Discrete Structures” mean? It’s the computer sciency way of saying…

● Example: Convert 123.321 from decimal to binary.

○ Do the part right of the decimal now.■ 0.321 * 2 = 0.642 → first bit is a 0

Representing fractions as binary

58

Page 59: CSCI 2824, Discrete Structures Fall 2017 Tony Wongtonyewong/courses/CSCI2824/csci2824_lecture01...What does “Discrete Structures” mean? It’s the computer sciency way of saying…

● Example: Convert 123.321 from decimal to binary.

○ Do the part right of the decimal now.■ 0.321 * 2 = 0.642 → first bit is a 0■ 0.642 * 2 = 1.284 → next bit is a 1■ 0.284 * 2 = 0.568 → next bit is a 0■ 0.568 * 2 = 1.136 → next bit is a 1■ 0.136 * 2 = 0.272 → next bit is a 0

■ 0.272 * 2 = 0.544 → next bit is a 0

■ 0.544 * 2 = 1.088 → next bit is a 1

■ … eventually find 0.32110 = 0.010100100012

■ … so 123.32110 = 1111011.010100100012

Representing fractions as binary

59

Page 60: CSCI 2824, Discrete Structures Fall 2017 Tony Wongtonyewong/courses/CSCI2824/csci2824_lecture01...What does “Discrete Structures” mean? It’s the computer sciency way of saying…

● Example: Convert 0.1 from decimal to binary.Representing fractions as binary

60

Page 61: CSCI 2824, Discrete Structures Fall 2017 Tony Wongtonyewong/courses/CSCI2824/csci2824_lecture01...What does “Discrete Structures” mean? It’s the computer sciency way of saying…

● Example: Convert 0.1 from decimal to binary.

○ 0.1 * 2 = 0.2, so first bit is a 0

○ 0.2 * 2 = 0.4, so next bit is a 0

○ 0.4 * 2 = 0.8, so next bit is a 0

○ 0.8 * 2 = 1.6, so next bit is a 1

○ 0.6 * 2 = 1.2, so next bit is a 1

○ 0.2 * … NOW HOLD ON A SECOND!

■ Restarts the pattern from here.

Representing fractions as binary

61

Page 62: CSCI 2824, Discrete Structures Fall 2017 Tony Wongtonyewong/courses/CSCI2824/csci2824_lecture01...What does “Discrete Structures” mean? It’s the computer sciency way of saying…

● Example: Convert 0.1 from decimal to binary.

○ 0.1 * 2 = 0.2, so first bit is a 0

○ 0.2 * 2 = 0.4, so next bit is a 0

○ 0.4 * 2 = 0.8, so next bit is a 0

○ 0.8 * 2 = 1.6, so next bit is a 1

○ 0.6 * 2 = 1.2, so next bit is a 1

○ 0.2 * … NOW HOLD ON A SECOND!

■ Restarts the pattern from here.

■ So 0.110 = 0.00011001100110011...2

Representing fractions as binary

62

Page 63: CSCI 2824, Discrete Structures Fall 2017 Tony Wongtonyewong/courses/CSCI2824/csci2824_lecture01...What does “Discrete Structures” mean? It’s the computer sciency way of saying…

● Example: Convert 0.1 from decimal to binary.

○ So 0.110 = 0.00011001100110011...2○ So computers would need to store an infinite number of bits in order

to store 0.110 exactly.

○ … obviously, computers can’t do that.

○ They truncate at a certain point, leading to some error.

Representing fractions as binary

63

Page 64: CSCI 2824, Discrete Structures Fall 2017 Tony Wongtonyewong/courses/CSCI2824/csci2824_lecture01...What does “Discrete Structures” mean? It’s the computer sciency way of saying…

● Example: Convert 0.1 from decimal to binary.

○ So 0.110 = 0.00011001100110011...2○ So computers would need to store an infinite number of bits in order

to store 0.110 exactly.

○ … obviously, computers can’t do that.

○ They truncate at a certain point, leading to some error.

○ How bad can this error be?

Representing fractions as binary

64

Page 65: CSCI 2824, Discrete Structures Fall 2017 Tony Wongtonyewong/courses/CSCI2824/csci2824_lecture01...What does “Discrete Structures” mean? It’s the computer sciency way of saying…

● How bad can this error be?

● Consider the function

f(a,b) = 333.75b6 + a2(11a2b2 - b6 - 121b4 - 2) + 5.5b8 + a/2b

where a=77617 and b=33096.

Representing fractions as binary

65

Page 66: CSCI 2824, Discrete Structures Fall 2017 Tony Wongtonyewong/courses/CSCI2824/csci2824_lecture01...What does “Discrete Structures” mean? It’s the computer sciency way of saying…

● How bad can this error be?

● Consider the function

f(a,b) = 333.75b6 + a2(11a2b2 - b6 - 121b4 - 2) + 5.5b8 + a/2b

where a=77617 and b=33096.

● If you run this on a 64-bit machine, you’ll findf(a,b) = -44450695952321879337122922496.000000, or maybef(a,b) = -1.180592e+21

(depending on the way the program you code in truncates)● But the true answer is more like

f(a,b) = -0.82739605...

Representing fractions as binary

66

Page 67: CSCI 2824, Discrete Structures Fall 2017 Tony Wongtonyewong/courses/CSCI2824/csci2824_lecture01...What does “Discrete Structures” mean? It’s the computer sciency way of saying…

Introduction and Binary Arithmetic

67

● Recap:

○ Today, we…

■ Confirmed that we are in the right classroom at the right time

■ Learned what the goals for this class are

■ Learned how to represent decimal numbers as binary, and vice versa

● Next time:

○ We talk logic!