0% found this document useful (0 votes)
44 views

Awesome Some Generating Functions: Great Theoretical Ideas in Computer Science

This document discusses generating functions and their use in counting problems and solving recurrences. It provides examples of generating functions for problems like counting the number of ways to choose items, making change with coins, and tiling boards with dominoes. The key benefits of generating functions noted are that they allow solving counting problems precisely, solving recurrences precisely, and proving identities.

Uploaded by

almavepa
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
44 views

Awesome Some Generating Functions: Great Theoretical Ideas in Computer Science

This document discusses generating functions and their use in counting problems and solving recurrences. It provides examples of generating functions for problems like counting the number of ways to choose items, making change with coins, and tiling boards with dominoes. The key benefits of generating functions noted are that they allow solving counting problems precisely, solving recurrences precisely, and proving identities.

Uploaded by

almavepa
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 39

15-251

Some AWESOME
Great Theoretical Ideas
in Computer Science
about Generating Functions
Generating Functions
Lecture 9 (September 21, 2010)
What is a generating function
and why would I use one?
Representation
What IS a Generating
Function?
We’ll just looking at a particular
representation of sequences…

In general, when is a sequence…


Counting 1,2,3…
Examples plx…?
Let’s talk about a particular
counting problem from two
lectures ago…

Danny owns 3 beanies and 2 ties.


How many ways can he dress up
in a beanie and a tie?

Choice 1

Choice 2
Counting 1,2,3…
Danny owns 3 beanies and 2 ties. How many
ways can he dress up in a beanie and a tie?

Choice 1

Choice 2

( + + )( + ) =
+ + + + +
Counting 1,2,3…
Danny owns 3 beanies and 2 ties. How many
ways can he dress up in a beanie and a tie?

How many beanies are we choosing?


How many hats?
Since we only care about the NUMBER,
we can replaces beanies and hats with ‘x’

( + + )( + ) =
+ + + + + =
That is, 6 is the number of ways to choose 2 things
Counting …4,5,6,…
Danny owns 3 beanies and 2 ties. How many
ways can he dress up if he doesn’t always wear
a beanie or a tie (and wears at most one of each)?
How many ways for a beanie?
1) 1 way for no beanie
2) 3 ways for one beanie

How many ways for a tie?


1) 1 way for no tie
2) 2 ways for one tie
…And why would I use one?

They're fun!

Solving counting problems

Solving recurrences precisely

Proving identities
Counting Coins
Suppose we have pennies, nickels, dimes, and
quarters, and we want to know how many ways
we can make change for n cents.

Let be the number of ways to make change


for n cents
For instance, how many ways can we make
change for six cents?

1) 6 pennies
2) 1 penny and 1 nickel

So,
Counting Coins
Suppose we have pennies, nickels, dimes, and
quarters, and we want to know how many ways
we can make change for n cents.

We want to represent as a generating function

What choices can we make to get n cents?

We choose pennies, nickels, dimes, and quarters


separately and then put them together
Counting Coins
Suppose we have pennies, nickels, dimes, and
quarters, and we want to know how many ways
we can make change for n cents.

We want to represent as a generating function

Remember that the EXPONENT is the ‘n’ in


and the COEFFICIENT is the number of ways we
can make change for n cents
To choose pennies…
Counting Coins
Suppose we have pennies, nickels, dimes, and
quarters, and we want to know how many ways
we can make change for n cents.

We want to represent as a generating function

Pennies:

Nickels:

Dimes:

Quarters:
Counting Coins
Suppose we have pennies, nickels, dimes, and
quarters, and we want to know how many ways
we can make change for n cents.
Pennies:

Nickels:

Dimes:

Quarters:
Putting the pieces together…
Counting Coins
Suppose we have pennies, nickels, dimes, and
quarters, and we want to know how many ways
we can make change for n cents.

Pennies Nickels Dimes Quarters

Quick Check…does the GF give the


right answer for ?

What is the coefficient of ?


Counting Coins
Suppose we have pennies, nickels, dimes, and
quarters, and we want to know how many ways
we can make change for n cents.
Pennies Nickels Dimes Quarters

The infinite sums are clunky, can we


find a simpler form?
Technical Terminology

This is the generating function


for the change problem

This is the closed form generating


function for the change problem

is the coefficient of in
Domino Domination
We have a board, and we would
like to fill it with dominos. We have two colors
of dominos: green and blue. The green ones
are , and the blue ones are .
How many ways can we tile our board using
non-staggered dominos?
Domino Domination

This is a non-obvious combinatorial question!


How should we proceed?!?!

Write a recurrence!
Domino Domination

So we have a
recurrence…but now
what?
Domino Domination
Now we derive a closed form
using generating functions!

Let

is the number of ways to tile a board.

We know the base cases:


Domino Domination
Now we derive a closed form
using generating functions!

Let
Domino Domination
Now we derive a closed form
using generating functions!

Let
Domino Domination
Why is the closed form of the
GF helpful or useful?

Let

Break it into smaller pieces!


Domino Domination
Why is the closed form of the
GF helpful or useful?

Let
Domino Domination
Why is the closed form of the
GF helpful or useful?

Let
Rogue Recurrence
for n>2
, ,
Solve this recurrence…or else!

Let
Rogue Recurrence
for n>2
, ,
Solve this recurrence…or else!

Let
Rogue Recurrence
for n>2
, ,
Solve this recurrence…or else!

Let
Rogue Recurrence
for n>2
, ,
Solve this recurrence…or else!

Let

What next? Partial fractions?


We could! It would work, but…
Rogue Recurrence
No. Let’s be sneaky instead!
Rogue Recurrence
for n>2
, ,
Now back to the recurrence…

Let
Some Common GFs
Sequence Generating
Function
Double Sums OMGWTFBBQ!

Our first step is to swap the summations.


Let’s try a small example…
Double Sums OMGWTFBBQ!

Our first step is to swap the summations.


Double Sums OMGWTFBBQ!
We know that…
Double Sums OMGWTFBBQ!

From the table…

So…
Generating Functions
• Counting with GFs
• Solving recurrences with GFs
• How to derive base cases of
recurrences
• Basic partial fractions

Here’s What
You Need to
Know…

You might also like