![1 Functions, Bijections, and Counting](https://data.docslib.org/img/3a60ab92a6e30910dab9bd827208bcff-1.webp)
ENGG 2440A: Discrete Mathematics for Engineers Lecture 9 The Chinese University of Hong Kong, Fall 2017 13 and 15 November 2017 Counting is the the task of finding the number of elements (also called the cardinality) of a given set. When the set is small, we can count its elements \by hand". When sets are larger we need a more systematic way to count. Say you have a six-sided die and a two-sided coin | it comes out heads (H) or tails (T). What is the number of possible outcomes when both the die and the coin are tossed? There are 6 possible outcomes for the die and 2 for the coin, so the total number of outcomes is 6 × 2 = 12. It will be useful to describe this kind of problem using the language of sets. The set S of possible outcomes of the die is S = f1; 2; 3; 4; 5; 6g, so jSj = 6. The set T of possible outcomes of the coin is T = fH; Tg, so jT j = 2. The set of possible outcomes of the die and the coin is the product set S × T : S × T = f(1; H); (1; T); (2; H); (2; T);:::; (6; H); (6; T)g: The number of elements of S × T is jSj · jT j = 6 · 2 = 12. In general, given any two finite sets S and T the product set S × T consists of all ordered pairs of elements (s; t) such that s is in S and t is in T : S × T = f(s; t): s 2 S and t 2 T g: The number of elements of S × T is the product of the number of elements of S and the number of elements of T , i.e., jS × T j = jSj · jT j. Let's do another example: Let R and B be the sets of outcomes of a toss of a red and a blue six-sided die, respectively. Then R = f1; 2; 3; 4; 5; 6g and B = f1; 2; 3; 4; 5; 6g. When both dies are tossed, the set of outcomes is R × B = f(1; 1); (1; 2);:::; (6; 6)g and the number of outcomes is jR × Bj = jRj · jBj = 36. In cases like this when S = T we can denote the set S × T by S2. (This is the square of a set, not the square of a number). The set S2 has jSj2 elements. We can also take the product of more than two sets. The set S1 × · · · × Sn (where S1;:::;Sn are 1 finite sets) consists of all sequences (s1; : : : ; sn) where si is in Si for all i between 1 and n: S1 × · · · × Sn = f(s1; : : : ; sn): s1 2 S1 and ::: and sn 2 Sng: The set S1 × · · · × Sn has jS1j · · · jSnj elements. n n When S1 = ··· = Sn = S, we write S for S1 × · · · × Sn. This set has jSj elements. For example, the set of outcomes when 9 different six-sided dies are tossed is f1; 2; 3; 4; 5; 6g9. This set has 69 elements, so there are 69 possible outcomes. 1 Functions, bijections, and counting One technique for counting the number of elements of a set S is to come up with a \nice" corre- spondence between a set S and another set T whose cardinality we already know. 1The order of elements in a sequence matters and there can be repetitions: For example, (1; 1; 2), (2; 1; 1), and (1; 2; 2) are all different sequences. 1 2 Let's count the number of subsets of the set Sn = f1; 2; 3; : : : ; ng. For example, when n = 1, S1 = f1g are there are two subsets: ? and f1g. When n = 2, S2 = f1; 2g and there are four subsets: ?, f1g, f2g, and f1; 2g. n I suspect that most of you can come up with a proof by induction that shows the set Sn has 2 elements. Instead of using induction, let me show you another way. The set f0; 1gn consists of all possible n-bit sequences. This is a product set, so it has 2n elements. n We will show how to represent subsets of Sn by elements of f0; 1g in a unique way: Each subset of Sn is represented by an n bit sequence, and each n bit sequence represents some subset. So their number must be the same. Here is how the representation works: The subset fs1; : : : ; skg of Sn is represented by the bit sequence that has ones in positions s1; : : : ; sk and zeros in all the other positions. For example, if n n = 7, the subset f3; 4; 6g of Sn is represented by the bit sequence (0; 0; 1; 1; 0; 1; 0) in f0; 1g . Clearly every subset of Sn is represented by some n bit sequence. It is also true that every n bit sequence represents a subset: The sequence (b1; : : : ; bn) represents the set of all i between 1 and n such that bi = 1. For example, the sequence (0; 0; 1; 1; 0; 1; 1) represents the set f3; 4; 6; 7g. We n showed a \one-to-one" correspondence between the subsets of Sn and the elements of f0; 1g (n-bit sequences), so their number must be the same. As this is our first argument of this type, let us explicitly write out the correspondence between 2 the elements of S2 and the sequences in f0; 1g : ? $ (0; 0) f1g $ (1; 0) f2g $ (0; 1) f1; 2g $ (1; 1): It is useful to have a language to describe these correspondences between sets. For this we need to talk about functions. Functions A function f from a set X to a set Y associates to every element x in X an element f(x) in Y . For example, f(0) = 0, f(1) = 1, f(2) = 0, f(3) = 3, f(4) = 0 is a function from set X = f0; 1; 2; 3; 4g to the set Y = f0; 1; 2; 3g. One way to specify a function is to list the values on all elements x in X: x: 0 1 2 3 4 f(x): 0 1 0 3 0 2 or by means of a bipartite graph Gf whose vertices are partitioned into X and Y and whose edges are those fx; yg such that f(x) = y: 0 0 1 1 X 2 Y 2 3 3 4 A more convenient way is to describe the function using logic. This can be done in many ways, for 2We abuse notation here and use the same label for vertices in X and vertices in Y . 3 example by giving a formula for calculating f: ( x; if x is odd; f(x) = x 2 f0; 1; 2; 3; 4g 0; if x is even an algorithm for calculating f: Function f(x), where x 2 f0; 1; 2; 3; 4g: Let b = x mod 2. Output b · x. or, say, by giving a recurrence: f(x) = (x mod 2) · (f(x − 2) + 2) for x ≥ 2; f(0) = 0; f(1) = 1: No matter which way you describe a function, you must make sure that f(x) is well-defined for every x in X: This value is specified and it is specified uniquely. For example, here is a bad way to define a function: f(x)2 = x: this specification is consistent with both f(1) = 1 and f(1) = −1, so it does not uniquely describe the value f(1). We write f : X ! Y for \a function from set X to set Y ". A function f : X ! Y is a injective if distinct elements in x are mapped to distinct elements in Y . More precisely, f is injective if for every pair of elements x and x0 in X such that x 6= x0, we have f(x) 6= f(x0). The above function is not injective because 0 6= 2 but f(0) = f(2). A function f : X ! Y is surjective if every element y in Y is mapped to by some x in X. More precisely, f is surjective if for every y in Y there exists x in X such that f(x) = y. The above function is not surjective because 2 2 Y but nothing maps to it. Let's assume X and Y are finite sets. When f is injective, the edges of the graph Gf are a matching and they match all the vertices of X, so Y must be at least as large as X, that is jY j ≥ jXj. When f is surjective, then every element of Y can be matched to some element of X (by taking an arbitrary edge incident to it), so Y can be at most as large as X, that is jY j ≤ jXj. We say f is bijective if it is injective and surjective. When X; Y are finite and f is bijective, the edges of Gf form a perfect matching between X and Y , so jXj = jY j. This is why bijective functions are useful for counting: If we know jXj and can come up with a bijective f : X ! Y , then we immediately get that jY j = jXj. The tricky part is coming up with f and showing that it is bijective | namely, both injective and surjective. Let's rework our previous example in this language. Let X = f0; 1gn and Y be the set of all subsets of f1; : : : ; ng. Let f : X ! Y be the function that on input (b1; : : : ; bn) outputs the set of indices i such that bi = 1, namely f((b1; : : : ; bn)) = fi: bi = 1g: Theorem 1.
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages11 Page
-
File Size-