16
1 06/12/22 MATH 224 – Discrete Mathematics Basic Structures - Sets Sets provide a basis for many of the data structures used in computer science. As you already know sets are collections of any type of object without ordering and without duplicates. The original formalization of the set was developed by the mathematician Georg Cantor in the late 19 th century. Cantor is most famous for both his theory of sets and infinity. He developed the idea of a hierarchy of infinities with the smallest being countable infinity sets, e.g., the integers, followed what he called Aleph 1 ( א1 ) the “smallest” uncountable set, e.g., the real numbers. His theory provides the basis for the concept that some problems are not solvable by computers.

MATH 224 – Discrete Mathematics

Embed Size (px)

DESCRIPTION

MATH 224 – Discrete Mathematics. Basic Structures - Sets. - PowerPoint PPT Presentation

Citation preview

Page 1: MATH 224 – Discrete Mathematics

104/19/23

MATH 224 – Discrete MathematicsBasic Structures - Sets

Sets provide a basis for many of the data structures used in computer science. As you already know sets are collections of any type of object without ordering and without duplicates. The original formalization of the set was developed by the mathematician Georg Cantor in the late 19th century.

Cantor is most famous for both his theory of sets and infinity. He developed the idea of a hierarchy of infinities with the smallest being countable infinity sets, e.g., the integers, followed what he called Aleph 1 ( 1א ) the “smallest” uncountable set, e.g., the real numbers. His theory provides the basis for the concept that some problems are not solvable by computers.

Page 2: MATH 224 – Discrete Mathematics

204/19/23

MATH 224 – Discrete Mathematics

Set ExamplesSome examples of sets include:

1. The set of students in this class

2. The set N of natural number (all non-negative integers) {0, 1, 2, 3, …}

3. The set Z of all integers both positive and negative {…, -2, -1, 0, 1, 2, …}

4. The set Q of all rational numbers (numbers that can be expressed as p/q, where p and q are elements of Z

5. The set R of real numbers.

6. The set C of complex numbers.

Which of these sets are countable and which are uncountable?

Countable sets can also be finite. Can you name some other countable sets, bothfinite and infinite?

Page 3: MATH 224 – Discrete Mathematics

304/19/23

MATH 224 – Discrete Mathematics

Basic Set Notation

,

Page 4: MATH 224 – Discrete Mathematics

404/19/23

MATH 224 – Discrete MathematicsSets and Venn Diagrams

x ≥ 0

x Z

Describe the sets represented by this Venn diagrams and there size.

Solvable by

N2 algorithms

Solvable by computers

Computational Problems

Letters

ASCII characters

Page 5: MATH 224 – Discrete Mathematics

504/19/23

MATH 224 – Discrete MathematicsBasic Set Notation

1. Vertical bars are used to indicate the size of a set or the number of elements in a set. So far example, the set of English lowercase letters L has size twenty six as indicated by |L| = 26 A set of this size can be put in one-to-one correspondence with the set {0, 1, 2, ..., 25}.

2. The power set of a set is indicated by P(X). This is the set of all subsets of X. So for example, if X = {a, b, c} then

P(X) = { , {a}, {b}, {c}, {a, b}, {a, c}, {b, c}, {a, b, c}}

If a set has a finite number of elements, for example N, how many elements will its power set have? Do you think that the power set of the integers is countable? Is it possible for a finite set to contain itself? Can you think of an example?

Page 6: MATH 224 – Discrete Mathematics

604/19/23

MATH 224 – Discrete Mathematics

Sets with Quantifiers

Assume that we have an algorithm σ that finds square roots of numbers. This might be indicated by something like

( x R) (x ≥ 0 → σ(x) returns the √x)

How would you describe the set of perfect squares?

x Y iff x = y2 where y is an integer or

Y = { x | x = y2 where y Z}

How would you describe the real numbers as a subset of the complex numbers without mentioning the imaginary number i?

Page 7: MATH 224 – Discrete Mathematics

704/19/23

MATH 224 – Discrete MathematicsCartesian Products and Ordered Pairs

Finally the concept of Cartesian products and order pair is important in computer science. You have seen ordered pairs, when plotting XY coordinates on a 2-dimensional graph. The Cartesian product, A x B, of two sets consists of all possible ordered pairs (a, b) where a A and b B. So for example if A = {1, 2, 3} and B = {a, b}, then A x B = {(1, a), (1, b), (2, a), (2, b), (3, a), (3, b)}.

Data structures such as graphs, trees and 2-dimensional arrays may be described as subsets of ordered pairs. Any subset of a Cartesian product is called a relation. And under specific circumstances a relation may also be a function. As an example, consider the set of all ordered (x, y) pairs of the grapy of y = 2x + 5. That set is called a relation and a function. It is a subset of R x R where R is the set of real numbers.

Why do circles and ellipses on an x ─ y coordinate graph not represent functions while parabolas and straight lines do?

Page 8: MATH 224 – Discrete Mathematics

804/19/23

MATH 224 – Discrete MathematicsSet Operations

Union: A U B = { x | x A v x B}

Intersection: A ∩ B = { x | x A ^ x B}

Difference: A – B = { x | x A ^ x B} ( stands for not in)

Complement: A′ or A = {x | x A} (It is assumed with respect to a universal set)

Symmetric Difference: A O B = {x | (x A U B) ^ (x A ∩ B)}

For example , why does A ∩ (B U C) = (A ∩ B) U (A ∩ C)?

And what about A U (A ∩ B) = A?

Could the distributive law for union be used to get the same result when union and intersection are swapped?

Page 9: MATH 224 – Discrete Mathematics

904/19/23

MATH 224 – Discrete MathematicsSet Identities

Can you explain why the identities in Table 1, on Page 124 from our text are true?

Page 10: MATH 224 – Discrete Mathematics

1004/19/23

MATH 224 – Discrete MathematicsFunctions

You already know what a function is in C++. It is a routine that possibly takes some input, performs some operations and possibly returns a value. Not all functions in C++ correspond to functions in mathematics. To conform to a mathematical function a C++ function must:

1. Take input, one or more parameters

2. Return a value that is unique for a given input

3. Must be a constant function – that is it must not alter any values, just return something (Well, it could be a void function with some parameters passed by value and some passed by reference satisfying specific conditions.)

When a C++ function returns a value, will a unique input always determine a unique output? What does a function have to do with ordered pairs? How are mathematical functions specified?

Page 11: MATH 224 – Discrete Mathematics

1104/19/23

MATH 224 – Discrete MathematicsFunctions

In mathematics, a function has a domain, sometimes referred to as the independent variable and a range (or codomain)* sometimes referred to as the dependent variable. For each possible value in the domain, there must be exactly one element in the range. An example of a function is f(x) = 2x – 3. If the domain of this function is restricted to integer values between –5 and 2, then the function f might be described as the set of ordered pairs {(-5, -13), (-4, -11), (-3, -9), (-2, -7), (-1, -5), (0, -3), (1, -1), (2, 1)}. The elements in this set correspond to points on the line described by y = 2x – 3.

Why does the equation y2 + x2 = 4, not describe a function?

Why does the set {(0,1), (2, 4), (4, 8), (1, 0), (4, 2)} not describe a function?

*Note that there is a distinction between range and the codomain. To be precise the range is a subset of the codomain.

Page 12: MATH 224 – Discrete Mathematics

1204/19/23

MATH 224 – Discrete Mathematics

Function Terminology

A function is called onto if its range is equal to the codomain. So for example, f(x) = 2x – 3 is a function from the real numbers to the real numbers that is onto

since ( y R) x (y = 2x – 3 ) . On the other hand g(x) = 2x2 – 3 is not onto the real numbers since no value of x results in a value for g(x) < –3. An onto function is called a surjection.

How would you express the fact that g(x) is not an onto function using quantifiers?

Can you give some examples of functions that are surjections?

Can you give some examples where the domain is finite?

Is a C++ function that sorts array surjective?

Page 13: MATH 224 – Discrete Mathematics

1304/19/23

MATH 224 – Discrete MathematicsFunction Terminology

A function is called one-to-one if there is exactly one value in the domain for each value in the range.. So for example f(x) = 2x – 3 is a one-to-one function from the real numbers to the real numbers that is ( y R, x R [(f(x) = f(y)) → x = y] .

On the other hand, g(x) = 2x2 – 3 is not one-to-one. For example, g(3) = g(-3) =15. A one-to-one function is called an injection. Finally a function that is one-to-one and onto is called a bijection or a one-to-one correspondence. When there is a one-to-one correspondence between to sets, those sets are the same size (have the same number of elements).

Is a C++ function that sorts arrays injective?

Can you give some examples of functions that are bijections?

Does the set of all integers have the same number of elements as the set of even integers? Can you describe a one-to-one correspondence between these two sets.

Is the factorial function one-to-one? Is it onto the set of all positive integers?

Page 14: MATH 224 – Discrete Mathematics

1404/19/23

MATH 224 – Discrete Mathematics

Function Terminology

A function is said to be invertible if it has an inverse. For example, the inverse of

f(x) = 2x + 5 is f-1(x) = (x – 5)/2.

How would you show that this example is correct?

The inverse of a function interchanges the domain and the range.

Does a function have to be a bijection in order to have an inverse?

Can you give some examples of functions and their inverses?

Page 15: MATH 224 – Discrete Mathematics

1504/19/23

MATH 224 – Discrete MathematicsFunction Terminology

Functions can be combined to create new functions. For example the result of two

functions may be added, for example, (f1 + f2) = f1(x) + f2(x). All arithmetic

operations may be used in a similar way including multiplication, division and

subtraction. Even more complex operations such as exponentiation, e.g., f1(x)f2(x)

may be used.

Can functions be combined in this way in C++. How would you do exponentiation of two functions in C++?

Another operation is the composition of functions f o g(x) = f(g(x)).

What function results form f o f-1(x)? Describe the function as an equation in y and x ?

Give an example of how to create the composition of two functions in C++.

Page 16: MATH 224 – Discrete Mathematics

1604/19/23

MATH 224 – Discrete MathematicsSome Important Functions for programming

You should know what the floor and ceiling functions are. In C++, when doing integer division, which of these functions is used?

Find a value for x that makes └x┘+ └x┘ ≤└x + x┘

Another important function in programming is log2(x) written as lg(x). This function

is the inverse of 2x. So for example, since 25 = 32, it follows that lg(32) = 5.

The lg function along with the ceiling function can be used to determine the number of bits required to represent an integer. For example, to represent 1000, requires 10 bits since lg(512) = 9 and lg(1024) = 10. Therefore 9 < lg(1000) < 10 and

┌lg (1000)┐ = 10.

Do you know an algorithm that you were taught in CS 140 or 145 that takes

┌lg(n) ┐ iterations when applied to an array with n elements?