3

The straight forward question is,

How many ways to form a binary sequence with 0 and 1, where no 3 consecutive digits are 1?

As it is a same question as this one or so like these. But everywhere I found recurrence. For this problem there is also a recurrence $$f_n = f_{n-1} +f_{n-2} +f_{n-3} $$

But I was wondering and couldn't find out a way that Is it possible to get any solution without recurrence ? Also Is there any combinatorial solution as this seems to be like a counting problem? If yes, how to reach the solution for problems like this? If no, how to prove that this is not possible?

RobPratt
  • 45,619
Fuad
  • 33
  • Thanks @Robert for this very important edit :) – Fuad Oct 29 '20 at 06:51
  • I think, you can apply the closed formula for the Tribonacci Sequence. – thinkingeye Oct 29 '20 at 07:19
  • It can be. But the motive is, is there any combinatorial thinking process with fancy permutations, combinations, inclusion exclusion as this is a counting problem? Also the tags I added was combinatorics... :3 – Fuad Oct 29 '20 at 07:21

1 Answers1

4

Any such sequence with a $0$ appended after it must be made out of the blocks $0, 10, 110$, by looking at where the $1$s occur in the sequence. If there are $i$ copies of the block $0$, $j$ copies of the block $10$ and $k$ copies of the block $110$ then there are ${i + j + k \choose i, j, k} = \frac{(i + j + k)!}{i! j! k!}$ ways to arrange these blocks and the total length of the sequence is $i + 2j + 3k$, which gives

$$f_n = \sum_{i + 2j + 3k = n+1} {i+j+k \choose i, j, k}.$$

There's a similar but simpler formula for the Fibonacci numbers. Whether this counts as a "solution" is subjective because there is still a summation with an unbounded number of terms involved. It's also hard to analyze the growth rate. Whereas the recurrence relation immediately tells you the growth rate, namely that it's $r^n$ where $r$ is the largest positive root of $r^3 = r^2 + r + 1$. It's an unintuitive technique at first but it gives very powerful and precise results. This argument in terms of blocks only works in some special cases and it doesn't give an answer that's very easy to work with.

Qiaochu Yuan
  • 419,620