COMPSCI 230 Discrete Mathematics for Computer Science Counting III Lecture 8 1 X+ 2 X+ 3 X How many ways to rearrange the letters in the word “CARNEGIEMELLON”? 14 2 positions of the Ns 12 3 positions of the Es 9 2 positions of the Ls 7! ways to order the rest Arrange n symbols: r1 of type 1, r2 of type 2, …, rk of type k n r1 n-r1 … r2 = = n - r1 - r2 - … - rk-1 rk n! (n-r1)! (n-r1)!r1! (n-r1-r2)!r2! n! r1!r2! … rk! … CARNEGIEMELLON 14! = 3,632,428,800 2!3!2! 5 distinct pirates want to divide 20 identical, indivisible bars of gold. How many different ways can they divide up the loot? Sequences with 20 G’s and 4 /’s GG/G//GGGGGGGGGGGGGGGGG/ represents the following division among the pirates: 2, 1, 0, 17, 0 In general, the ith pirate gets the number of G’s after the (i-1)st / and before the ith / This gives a correspondence (bijection) between divisions of the gold and sequences with 20 G’s and 4 /’s How many different ways to divide up the loot? Sequences with 20 G’s and 4 /’s 24 4 How many different ways can n distinct pirates divide k identical, indivisible bars of gold? n+k-1 n-1 = n+k-1 k Identical/Distinct Dice Suppose that we roll seven dice How many different outcomes are there, if order matters? 67 What if order doesn’t matter? (E.g., Yahtzee) 12 7 (Corresponds to 6 pirates and 7 bars of gold) Multisets A multiset is a set of elements, each of which has a multiplicity The size of the multiset is the sum of the multiplicities of all the elements Example: {X, Y, Z} with m(X)=0 m(Y)=3, m(Z)=2 Unary visualization: {Y, Y, Y, Z, Z} Counting Multisets There number of ways to choose a multiset of size k from n types of elements is: n+k-1 n+k-1 = n-1 k Taking k items from a set of n Order matters, no repetition: n! (n-k)! Order matters, repetition allowed: Order doesn’t matter, no repetition: nk n k Order doesn’t matter, repetition allowed: n+k-1 k Polynomials Express Choices and Outcomes Products of Sum = Sums of Products ( + + + )( + + + + )= + b3 b1 b2 t2 t1 t2 t1 t2 b1t1 b1t2 b2t1 b2t2 b3t1 b3t2 t1 (b1+b2+b3)(t1+t2) = b1t1 + b1t2 + b2t1 + b2t2 + b3t1 + b3t2 What is a Closed Form Expression For ck? (1+X)n = c0 + c1X + c2X2 + … + cnXn (1+X)(1+X)(1+X)(1+X)…(1+X) After multiplying things out, but before combining like terms, we get 2n cross terms, each corresponding to a path in the choice tree ck, the coefficient of Xk, is the number of paths with exactly k X’s ck = n k The Binomial Formula (1+X)n n 0 n 1 n n = X + X +…+ X 0 1 n Binomial Coefficients binomial expression The Binomial Formula (1+X)0 = 1 (1+X)1 = 1 + 1X (1+X)2 = 1 + 2X + 1X2 (1+X)3 = 1 + 3X + 3X2 + 1X3 (1+X)4 = 1 + 4X + 6X2 + 4X3 + 1X4 What is the coefficient of EMSTY in the expansion of (E + M + S + T + Y)5? 5! What is the coefficient of EMS3TY in the expansion of (E + M + S + T + Y)7? The number of ways to rearrange the letters in the word SYSTEMS What is the coefficient of (X1r1X2r2…Xkrk) in the expansion of (X1+X2+X3+…+Xk)n? n! r1!r2!...rk! Power Series Representation n (1+X)n = k=0 “Product form” or “Generating form” = k=0 n k n k Xk Xk For k>n, n k =0 “Power Series” or “Taylor Series” Expansion By playing these two representations against each other we obtain a new representation of a previous insight: n (1+X)n = k=0 n Let x = 1, 2n = k=0 n k Xk n k The number of subsets of an n-element set By varying x, we can discover new identities: n (1+X)n = k=0 n Let x = -1, 0= k=0 n Equivalently, k odd n k Xk n (-1)k k n k n = k even n k The number of subsets with even size is the same as the number of subsets with odd size n (1+X)n = k=0 n k Xk Proofs that work by manipulating algebraic forms are called “algebraic” arguments. Proofs that build a bijection are called “combinatorial” arguments n k odd n k n = k even n k Let On be the set of binary strings of length n with an odd number of ones. Let En be the set of binary strings of length n with an even number of ones. We gave an algebraic proof that On = En A Combinatorial Proof Let On be the set of binary strings of length n with an odd number of ones Let En be the set of binary strings of length n with an even number of ones A combinatorial proof must construct a bijection between On and En An Attempt at a Bijection Let fn be the function that takes an n-bit string and flips all its bits fn is clearly a one-toone and onto function for odd n. E.g. in f7 we have: ...but do even n work? In f6 we have 0010011 1101100 1001101 0110010 110011 001100 101010 010101 Uh oh. Complementing maps evens to evens! A Correspondence That Works for all n Let fn be the function that takes an n-bit string and flips only the first bit. For example, 0010011 1010011 1001101 0001101 110011 010011 101010 001010 n (1+X)n = k=0 n k Xk The binomial coefficients have so many representations that many fundamental mathematical identities emerge… The Binomial Formula (1+X)0 = 1 (1+X)1 = 1 + 1X (1+X)2 = 1 + 2X + 1X2 (1+X)3 = 1 + 3X + 3X2 + 1X3 (1+X)4 = 1 + 4X + 6X2 + 4X3 + 1X4 Pascal’s Triangle: kth row are coefficients of (1+X)k Inductive definition of kth entry of nth row: Pascal(n,0) = Pascal (n,n) = 1; Pascal(n,k) = Pascal(n-1,k-1) + Pascal(n-1,k) “Pascal’s Triangle” 0 =1 0 1 =1 0 2 =1 0 3 =1 0 1 =1 1 2 =2 1 3 =3 1 2 =1 2 3 =3 2 • Al-Karaji, Baghdad 953-1029 • Chu Shin-Chieh 1303 • Blaise Pascal 1654 3 =1 3 Pascal’s Triangle “It is extraordinary 1 how fertile in properties the 1 1 triangle is. 1 2 1 Everyone can try his 1 3 3 1 hand” 1 4 6 4 1 1 1 5 6 10 15 10 20 5 15 1 6 1 Summing the Rows n 2n = n k 1 =1 1 + 1 =2 1 + 2 + 1 =4 1 + 3 + 3 + 1 =8 1 + 4 + 6 + 4 + 1 = 16 1 + 5 + 10 + 10 + 5 + 1 = 32 1 + 6 + 15 + 20 + 15 + 6 + 1 = 64 k=0 Odds and Evens 1 1 1 1 1 1 1 2 3 4 5 6 1 3 6 10 15 1 1 4 10 20 1 5 15 1 6 1 + 15 + 15 + 1 = 6 + 20 + 6 1 Summing on 1st Avenue n 1 1 1 1 1 1 1 2 3 4 5 6 1 15 i=1 1 6 1 4 10 20 i = i=1 3 10 n 1 5 15 1 6 1 i = n+1 2 1 Summing on kth Avenue 1 1 1 1 1 1 1 6 2 4 6 1 4 10 20 i=k 1 3 10 15 1 3 5 n 1 5 15 1 6 1 i = n+1 k+1 k Fibonacci Numbers 1 =2 1 1 =3 = 5 1 2 1 =8 1 3 3 1 = 13 1 1 1 4 5 6 6 10 15 4 10 20 1 5 15 1 6 1 Sums of Squares 1 1 1 2 2 1 1 1 1 1 2 6 2 3 2 4 5 1 2 2 3 6 10 15 2 1 4 10 20 1 5 15 1 6 1 Al-Karaji Squares 1 1 =1 2 +21 =4 1 1 3 +2 3 1 1 1 1 4 +26 5 +210 6 +215 4 10 20 =9 1 5 15 = 16 1 = 25 1 6 1 = 36 Pascal Mod 2 All these properties can be proved inductively and algebraically. We will give combinatorial proofs using the Manhattan block walking representation of binomial coefficients How many shortest routes from A to B? A B 10 5 Manhattan jth street 4 There are 3 2 1 0 0 1 2 kth avenue 3 4 j+k shortest routes from (0,0) to (j,k) k Manhattan Level n 4 There are 3 2 1 0 0 1 2 kth avenue 3 4 n shortest routes from (0,0) to (n-k,k) k Manhattan Level n 4 3 There are 2 1 n k 0 0 1 2 kth avenue 3 4 shortest routes from (0,0) to level n and kth avenue Level n 4 3 2 1 0 0 1 1 1 2 1 1 2 1 kth avenue 3 4 1 3 1 3 4 4 1 1 6 1 1 5 10 10 5 6 15 20 15 6 Level n 4 3 2 1 0 1 1 1 3 1 2 kth avenue 1 3 1 1 4 1 6 1 1 5 10 + 10 5 6 15 20 15 6 1 n k 4 n-1 n-1 = + k-1 k Level n 4 3 2 1 0 0 n k=0 n k 2 1 2 kth avenue 3 2n = n 4 Level n 4 3 2 1 0 0 n i=k i k 1 2 kth avenue 3 n+1 = k+1 4 Vector Programs Let’s define a (parallel) programming language called VECTOR that operates on possibly infinite vectors of numbers. Each variable V! can be thought of as: < * , * , * , * , *, *, … > Vector Programs Let k stand for a scalar constant <k> will stand for the vector <k,0,0,0,…> <0> = <0,0,0,0,…> <1> = <1,0,0,0,…> V! + T! means to add the vectors position-wise <4,2,3,…> + <5,1,1,….> = <9,3,4,…> Vector Programs RIGHT(V!) means to shift every number in V! one position to the right and to place a 0 in position 0 RIGHT( <1,2,3, …> ) = <0,1,2,3,…> Vector Programs Example: Store: V! := <6>; V! := RIGHT(V!) + <42>; V! := RIGHT(V!) + <2>; V! := RIGHT(V!) + <13>; V! = <6,0,0,0,…> V! = <42,6,0,0,…> V! = <2,42,6,0,…> V!= <13,2,42,6,…> V! = < 13, 2, 42, 6, 0, 0, 0, … > Vector Programs Example: Store: V! := <1>; V! = <1,0,0,0,…> V! = <1,1,0,0,…> V! = <1,2,1,0,…> V!= <1,3,3,1,…> Loop n times V! := V! + RIGHT(V!); V! = nth row of Pascal’s triangle 1 X + 2 X + Vector programs can be implemented by polynomials! 3 X Programs Polynomials The vector V! = < a0, a1, a2, . . . > will be represented by the polynomial: PV = i=0 aiXi Formal Power Series The vector V! = < a0, a1, a2, . . . > will be represented by the formal power series: PV = i=0 aiXi V! = < a0, a1, a2, . . . > PV = aiXi i=0 <0> is represented by 0 <k> is represented by k V! + T! is represented by RIGHT(V!) is represented by (PV + PT) (PV X) Vector Programs Example: V! := <1>; PV := 1; Loop n times V! := V! + RIGHT(V!); PV := PV + PV X; V! = nth row of Pascal’s triangle Vector Programs Example: V! := <1>; PV := 1; Loop n times V! := V! + RIGHT(V!); PV := PV(1+X); V! = nth row of Pascal’s triangle Vector Programs Example: V! := <1>; Loop n times V! := V! + RIGHT(V!); PV = (1+ X)n V! = nth row of Pascal’s triangle • Polynomials count • Binomial formula • Combinatorial proofs of binomial identities • Vector programs Here’s What You Need to Know…