# Counting III Pascal’s Triangle, Polynomials, and Vector Programs

Document Sample

```					             Great Theoretical Ideas In Computer Science
Steven Rudich                              CS 15-251       Spring 2003
Lecture 11      Feb 14, 2004               Carnegie Mellon University

Counting III: Pascal’s Triangle,
Polynomials, and Vector Programs

X1+                  X2+
X3
Xn+1 - 1
1 + X1 + X2 + X 3 + … + Xn-1 + Xn =
X- 1

The Geometric Series
1
1+   X1   +   X2   +X +…+
3      Xn   + ….. =
1-X

The Infinite Geometric Series
1
1+   X1   +   X2   +X +…+
3      Xn   + ….. =
1-X

(X-1) ( 1 + X1 + X2 + X 3 + … + Xn + … )
=           X1 + X2 + X 3 + …        + Xn + Xn+1 + ….
- 1 - X1 - X2 - X 3 - … - Xn-1 – Xn - Xn+1 - …

=            1
1
1+   X1   +   X2   +X +…+
3      Xn   + ….. =
1-X

1 + x + …..
____________________
1-x | 1
-[1 – x]
_____
x
-[x – x2 ]
______
x2
-....
1
1+   aX1   +   a2X2   +   a3X 3   +…+   anXn   + ….. =
1 - aX

Geometric Series (Linear Form)
(1 + aX1 + a2X2 + … + anXn + …..) (1 + bX1 + b2X2 + … + bnXn + …..) =

1
(1 – aX)(1-bX)

Geometric Series
(1 + aX1 + a2X2 + … + anXn + …..) (1 + bX1 + b2X2 + … + bnXn + …..) =
1 + c1X1 + .. + ck Xk + …

Suppose we multiply this out
to get a single, infinite
polynomial.

What is an expression for Cn?
(1 + aX1 + a2X2 + … + anXn + …..) (1 + bX1 + b2X2 + … + bnXn + …..) =
1 + c1X1 + .. + ck Xk + …

cn =

a0bn + a1bn-1 +… aibn-i… + an-1b1 + anb0
(1 + aX1 + a2X2 + … + anXn + …..) (1 + bX1 + b2X2 + … + bnXn + …..) =
1 + c1X1 + .. + ck Xk + …

If a = b then

cn = (n+1)(an)

a0bn + a1bn-1 +… aibn-i… + an-1b1 + anb0
an+1 – bn+1
a0bn + a1bn-1 +… aibn-i… + an-1b1 + anb0 =
a- b

(a-b) (a0bn + a1bn-1 +… aibn-i… + an-1b1 + anb0)
=             a1bn +… ai+1bn-i…        + anb1 + an+1b0
- a0bn+1 – a1bn… ai+1bn-i… - an-1b2 - anb1

= - bn+1                +                       an+1

=                           an+1 – bn+1
(1 + aX1 + a2X2 + … + anXn + …..) (1 + bX1 + b2X2 + … + bnXn + …..) =
1 + c1X1 + .. + ck Xk + …

if a  b then

cn =          an+1 – bn+1
a- b
a0bn + a1bn-1 +… aibn-i… + an-1b1 + anb0
(1 + aX1 + a2X2 + … + anXn + …..) (1 + bX1 + b2X2 + … + bnXn + …..) =

1
=
(1 – aX)(1-bX)

=         n=0..1                  an+1 – bn+1
a- b
Xn

or         n=0..1                   (n+1)an    Xn
when a=b

Previously, we saw that

Polynomials Count!
The number of
ways to rearrange
the letters in the
word BANANA.
Choice tree for terms of (1+X)3

1   X

1   X                     1   X

1    X           1   X        1   X        1   X

1    X        X       X2   X       X2   X2      X3

Combine like terms to get 1 + 3X + 3X2 + X3
The Binomial Formula

FI  FIX  FIX . . .FIX . . .FIX
n
G G
n     n          n          n
0J H  1J G 2J         kJ
G          nJ
G
(1  X)   n                    2         k        n

K
H K H       K H        K H        K
Binomial Coefficients

binomial
expression
The Binomial Formula

n
n k
(1  x )      x
n

k 0  k 
One polynomial,
two representations

n
n k
(1  x )      x
n

k 0  k 

“Product form” or
“Expanded form”
Power Series Representation

n
 n k
(1  x)      x
n

k 0  k 


 n k
“Closed form” or
   x               n
Since    0 if k  n
k 

“Generating form”    k 0  k 

“Power series” (“Taylor series”) expansion
By playing these two representations against
each other we obtain a new representation of
a previous insight:

n
n k
(1  x )      x
n

k 0  k 

Let x=1.
n
n
2   
n

k 0  k 

The number of
subsets of an
n-element set
By varying x, we can discover new identities

n
n k
(1  x )      x
n

k 0  k 

Let x= -1.
n
n
0      ( 1) k
k 0  k 

Equivalently,
n
n   n
n
     2 n 1
  k  k odd k
k even        
The number of even-sized subsets of an n element
set is the same as the number of odd-sized subsets.

n
n k
(1  x )      x
n

k 0  k 

Let x= -1.
n
n
0      ( 1) k

k 0  k 

Equivalently,
n
n  n
n
  k   k  k   2
k even    odd  
n 1
n
 n k
(1  x)      x
n

k 0  k 

We could discover new identities
by substituting in different
numbers for X. One cool idea is to
try complex roots of unity,
however, the lecture is going in
another direction.
n
 n k
(1  x)      x
n

k 0  k 

Proofs that work by manipulating
algebraic forms are called
“algebraic” arguments. Proofs
that build a 1-1 onto
correspondence are called
“combinatorial” arguments.
n
n   n
n
     2n 1
  k  k odd k
k even        

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 one-to-
one correspondence between On and En
An attempt at a correspondence
Let fn be the function that takes an
n-bit string and flips all its bits.

fn is clearly a one-to-one     ...but do even n work? In f6
and onto function                     we have
for odd n. E.g. in f7 we have         110011  001100
0010011  1101100                 101010  010101
1001101  0110010
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
 n k
(1  x)      x
n

k 0  k 

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 the coefficients of (1+X)k

(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
kth Row Of Pascal’s Triangle:
n n n  n n
  ,   ,   ,...,   ,...  
 0 1  2  k   n

(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
Inductive definition of kth entry of nth row:
Pascal(n,0) = Pacal (n,n) = 1;
Pascal(n,k) = Pascal(n-1,k-1) + Pascal(n,k)

(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”
0
0  1
 
1          1
0  1      1  1
           
2        2        2
0 1     1  2    2  1
                   
3        3        3         3
0  1   1  3     2 3      3  1
                            

Chu Shin-Chieh 1303
The Precious Mirror of the Four Elements
. . . Known in Europe by 1529
Blaise Pascal 1654
Pascal’s Triangle
1
“It is extraordinary
how fertile in
1   1       properties the
1   2   1         triangle is.
Everyone can
1   3   3   1           try his
hand.”
1     4        6         4        1
1       5         10        10        5           1
1       6        15        20        15           6       1
                                                        
Summing The Rows

n
n           1                =1
2   
n

k 0  k        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
                               
1
1        1
1        2         1
1       3         3        1
1       4        6         4       1
1       5           10        10           5       1
1       6       15           20        15          6       1

6+20+6 = 1+15+15+1
Summing on 1st Avenue

1
1        1
1       2        1                n       n
 i   n  1 n  (n  1)
 i   1   2   2
i k  
1       3        3       1           i k                   

1       4       6        4       1
1   5        10          10      5       1
1   6       15          20        15         6        1
                                                            
Summing on kth Avenue

1
1        1
1       2        1                    n
 i   n  1
  k    k  1
i k           
1       3        3       1
1       4       6        4       1
1   5        10          10      5       1
1   6       15          20        15         6   1
                            
1
=2
1        1
=3
1 2 1 =5
=8
1 3 3 1 =13
1    4        6        4     1
1   5        10        10        5       1
1   6       15        20        15       6       1
                                                       
1
1       1
2       2        2
1        2       1
2        2       2        2
1        3       3        1
1       4        6       4        1
1   5        10          10           5       1
1   6       15       20          15           6       1
                                                            
Al-Karaji Squares

1                            =0
1       1                        =1
1     2 + 2*1                         =4
1       3 + 2*3          1                =9
1       4 + 2*6          4       1           =16
1     5 + 2*10              10        5        1   =25
1       6 + 2*15           20        15        6       1=36
                                             
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

10 
B          5
 
Manhattan
j’th Street           0 0       k’th Avenue
1         1
2                 2
3                         3
4                                 4
Manhattan
Level n        ……… 0 k’th Avenue
0
1    …………. 1
2    …………………… 2
3     ………………………… 3
4     …………………………………  4
Manhattan
Level n        ……… 0 k’th Avenue
0
1    …………. 1
2    …………………… 2
3     ………………………… 3
4     …………………………………  4
. . . . .                 k’th Avenue
. . . . 1 1
.
level n .   . . . . 2
1
1
. .    . . .13         3
1                   1
. . .      .
.1 4 6
4       1
1       5     10 10 5  1
6       15 20 15 6
.....                             k’th Avenue
.....              1
level n . . . . . 1                 1
2
.....     1                      1

.....    1    3               3         1
1   4             6         4        1
1       5        10        10        5       1
6       15        20        15       6

 n   n  1  n  1
 k    k  1   k 
                  
.....                             k’th Avenue
.....              1
level n . . . . . 1                 1
2
.....     1                      1

.....    1    3               3         1
1   4             6         4        1
1       5        10        10        5       1
6       15        20        15       6

n
 k 
k even  
 2n 1
.....                                 k’th Avenue
.....                  1
level n . . . . . 1                     1
2
.....     1                          1

.....    1    3                   3         1
1   4                 6         4        1
1       5            10        10        5       1
6           15        20        15       6

2
n
 n   2n 
 k    n 
k 0      
By convention:

0!  1   (empty product = 1)

n
 k   1 if k  0
 
n
 k   0 if k  0 or k  n
 
.....                                 k’th Avenue
.....                  1
level n . . . . . 1                     1
2
.....     1                          1

.....    1    3                   3         1
4
1                 6         4        1
1         5        10        10        5           1
6         15        20        15       6
Corollary (k  1)
n
 i   n  1
  k    k  1
i 1  
n
 n  1  n(n  1)
i   2   2
                                                  i 1        
Application (Al-Karaji):
n

 i 2  12  22  32    n 2
i 0

 (1  0  1)  (2  1  2)  (3  2  3)    ( n( n  1)  n)
n
 1  0  2  1  3  2    n( n  1)   i
i 1

 2   3   4   5          n    n  1
 2                   
 2 2 2 2                2   2    
 n  1   n  1  (2n  1)( n  1)n
 2         2 
 3                     6
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:

< * , * , * , * , *, *, . . . . . . . . . >

0 1       2 3 4 5.........
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:                      Stare

V! := <6>;                    V! = <6,0,0,0,..>
V! := RIGHT(V!) + <42>;       V! = <42,6,0,0,..>
V! := RIGHT(V!) + <2>;        V! = <2,42,6,0,..>
V! := RIGHT(V!) + <13>;       V!= <13,2,42,6,.>

V! = < 13, 2, 42, 6, 0, 0, 0, . . . >
Vector Programs

Example:                  Stare

V! := <1>;                V! = <1,0,0,0,..>

Loop n times:             V! = <1,1,0,0,..>
V! := V! + RIGHT(V!);    V! = <1,2,1,0,..> V!
= <1,3,3,1,.>

V! = nth row of Pascal’s triangle.
X1+        X2+
X3
Vector programs
can be implemented
by polynomials!
Programs -----> Polynomials

The vector V! = < a0, a1, a2, . . . > will be
represented by the polynomial:
Formal Power Series

The vector V! = < a0, a1, a2, . . . > will be
represented by the formal power series:
V! = < a0, a1, a2, . . . >

<0> is represented by                   0
<k> is represented by                   k

V! + T! is represented by           (PV + PT)

RIGHT(V! ) is represented by            (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:                    PV = (1+ X)n
V! := V! + RIGHT(V!);

V! = nth row of Pascal’s triangle.
What is the coefficient of Xk
in the expansion of:

( 1 + X + X2 + X3 + X4 + . . . . )n ?

Each path in the choice tree for the
cross terms has n choices of exponent
e1, e2, . . . , en ¸ 0. Each exponent can be
any natural number.
Coefficient of Xk is the number of
non-negative solutions to:
e1 + e2 + . . . + e n = k
What is the coefficient of Xk
in the expansion of:

( 1 + X + X2 + X3 + X4 + . . . . )n ?

 n  k  1
          
   n -1 
( 1 + X + X2 + X3 + X4 + . . . . )n =

1           
 n  k  1 k
n                  X
1  X        k 0    n -1 
What is the coefficient of Xk in the
expansion of:

(a0 + a1X + a2X2 + a3X3 + …) ( 1 + X + X2 + X3 + . . . )

= (a0 + a1X + a2X2 + a3X3 + …) / (1 – X)        ?

a0 + a1 + a2 + .. + ak
(a0 + a1X + a2X2 + a3X3 + …) / (1 – X)

=             i k

       k
   ai X
k 0  i 0 

=

PREFIXSUM(a0 + a1X + a2X2 + a3X3 + …)
called PREFIXSUM to our
VECTOR language.

W! := PREFIXSUM(V!)

means that the ith position
of W contains the sum of all
the numbers in V from
positions 0 to i.
What does this program output?

V! := 1! ;
Loop k times: V! := PREFIXSUM(V! ) ;

0 k’th Avenue
1
2
3
4
Can you see how
PREFIXSUM can be
represented by a familiar
polynomial expression?
W! := PREFIXSUM(V! )

is represented by

PW = PV / (1-X)
= PV (1+X+X2+X3+ ….. )
Al-Karaji Program
Zero_Ave := PREFIXSUM(<1>);
First_Ave := PREFIXSUM(Zero_Ave);
Second_Ave :=PREFIXSUM(First_Ave);

Output:=
First_Ave + 2*RIGHT(Second_Ave)

OUTPUT! = <1, 4, 9, 25, 36, 49, …. >
Al-Karaji Program
Zero_Ave = 1/(1-X);
First_Ave = 1/(1-X)2;
Second_Ave = 1/(1-X)3;

Output =
1/(1-X)2 + 2X/(1-X)3
(1-X)/(1-X)3 + 2X/(1-X)3

= (1+X)/(1-X)3
(1+X)/(1-X)3
Zero_Ave := PREFIXSUM(<1>);
First_Ave := PREFIXSUM(Zero_Ave);
Second_Ave :=PREFIXSUM(First_Ave);

Output:=
RIGHT(Second_Ave) + Second_Ave

Second_Ave        = <1, 3, 6, 10, 15,.
RIGHT(Second_Ave) = <0, 1, 3, 6, 10,.
Output               = <1, 4, 9, 16, 25
(1+X)/(1-X)3
outputs <1, 4, 9, ..>

X(1+X)/(1-X)3
outputs <0, 1, 4, 9, ..>

The kth entry is k2
X(1+X)/(1-X)3 =  k2Xk

What does X(1+X)/(1-X)4 do?
X(1+X)/(1-X)4 expands to :

 Sk Xk

where Sk is the sum of the
first k squares
Aha! Thus, if there is an
alternative interpretation of
the kth coefficient of
X(1+X)/(1-X)4
we would have a new way to
get a formula for the sum of
the first k squares.
Using pirates and gold we
found that:

1              
 n  k  1 k
n                     X
1  X          k 0    n -1 

THUS:
1             
k  3 k
4
          X
1  X          k 0   3 
Coefficient of Xk in PV = (X2+X)(1-X)-4 is
the sum of the first k squares:

1            
k  3 k
4
          X
1  X          k 0   3 
Vector programs -> Polynomials
-> Closed form expression
Expressions of the form
Finite Polynomial / Finite Polynomial

are called Rational Polynomial
Expressions.

Clearly, these expressions have some
deeper interpretation as a
programming language.

X/(1-X-X2)

x
 F0 x  F1 x  F2 x  F3 x     Fi x
0      1      2      3             i

1 x  x 2
i 0

The action of dividing one
polynomial by another can
simulate a program to recursively
compute Fibonacci numbers.
Vector Program I/O

Example:

INPUT I!; /* not allowed to alter I! */

V! := I! + 1;
Loop n times:
V! := V! + RIGHT(V!) + I! ;

OUTPUT V!
Vector Recurrence Relations

Let P be a vector program that takes input.

A vector relation is any statement of the
form:
V! = P( V! )

If there is a unique V! satisfying the
relation, then V! is said to be defined by the
relation V! = P( V! ).
Fibonacci Numbers
Recurrence Relation Definition:

F0  0, F1  1,
Fn  Fn1  Fn2 , n  1

Vector Recurrence Relation
Definition:

F! = RIGHT( F! + <1> ) + RIGHT( RIGHT( F! ) )
F! = RIGHT( F! + <1> ) + RIGHT( RIGHT( F! ) )

F! = a0, a1        , a2, a3, a4, . . .

RIGHT(F! +<1>) =       0, a0 + 1, a1,    a2, a3,
RIGHT( RIGHT( F! ) )
= 0, 0        , a0,    a1, a2, a3, .
F! = RIGHT( F! + 1 ) + RIGHT( RIGHT( F! ) )

F = a0 + a1 X + a2 X2 + a3 X3 +

RIGHT(F + 1) = (F+1) X

RIGHT( RIGHT( F ) )
=    F X2
F = (F + 1) X + F                X 2

F =     a0 + a1 X + a2 X2 + a3 X3 + . . .

RIGHT(F + 1) = (F+1) X

RIGHT( RIGHT( F ) )
=     F X2
F = F X + X + F       X 2

Solve for F.
F - FX - FX2 = X
F(1-X-X2) = X

F = X/(1-X-X2)
What is the Power Series
Expansion of x / (1-x-x2) ?
Since the bottom is

X / (1-X-X2) =

X/(1- X)(1 – (-)-1X)

where  =

“The Golden Ratio”
X
(1 – X)(1- (--1X)

=     n=0..∞                  ?   Xn

Linear factors on the bottom
(1 + aX1 + a2X2 + … + anXn + …..) (1 + bX1 + b2X2 + … + bnXn + …..) =

1
=
(1 – aX)(1-bX)

=         n=0..1                  an+1 – bn+1
a- b
Xn

1
(1 – X)(1- (--1X)

n+1 – (--1)n+1
=    n=0.. ∞                   5
Xn

X
(1 – X)(1- (--1X)

n+1 – (--1)n+1 n+1
=     n=0.. ∞                    5
X

Power Series Expansion of F

x
 F0 x  F1 x  F2 x  F3 x     Fi x
0      1      2      3             i

1 x  x 2
i 0

x        
1  i  1 i  i
              x
1 x  x            5      
2
i 0
          

x
 F0 x  F1 x  F2 x  F3 x     Fi x
0      1      2      3             i

1 x  x 2
i 0

The ith Fibonacci number is:

1  i  1 i 
              
5
i 0
      
References

Applied Combinatorics, by Alan Tucker

Generatingfunctionology, Herbert Wilf

```
DOCUMENT INFO
Shared By:
Categories:
Stats:
 views: 36 posted: 4/16/2009 language: English pages: 105
How are you planning on using Docstoc?