The leftmost-piece principle
Many combinatorial counting problems on a one-dimensional strip — climbing a staircase, tiling a or board, sequences avoiding a pattern — count the same family of objects of size . Let be that count. The trick is to partition all valid configurations by their leftmost piece (the first move, the first column's tiles). Each possible leftmost piece consumes a fixed-width prefix and leaves a strictly smaller, self-similar sub-instance whose count is some . Summing over the disjoint cases gives a linear recurrence with constant coefficients.
where is the width the piece removes. The cases must be exhaustive (every configuration has a unique leftmost piece) and disjoint (no configuration is counted twice).
Two canonical cases
Staircase / steps of size 1 or 2. Climbing stairs, each move is or . Casing on the first move:
- first move leaves stairs ,
- first move leaves stairs .
So — the Fibonacci recurrence, with (so ).
board with and pieces. Look at how the leftmost column gets filled:
| Leftmost piece | Width removed | Contributes |
|---|---|---|
| vertical domino | ||
| two stacked horizontal dominoes | ||
| one block |
Two distinct pieces both remove width , so they add a coefficient:
Worked mini-example
Tile a board with the pieces above. Using with :
The five tilings: three vertical dominoes; (vertical)(two-horizontal); (vertical)(); (two-horizontal)(vertical); ()(vertical). Casing on the leftmost column makes the enumeration mechanical instead of error-prone.
From recurrence to closed form
Once you have the recurrence, solve it with the characteristic equation (see related card). For , the equation has roots , giving . For the Fibonacci case the roots are the golden-ratio pair .
Exam trick: Coefficients in the recurrence come from counting how many distinct pieces remove the same width, not from the number of cases. Mislabeling the board as plain Fibonacci () is the classic trap — you must remember that a horizontal-domino pair and a block both leave a board, producing the coefficient . Always sanity-check with (here , not ) before trusting a closed form.