How many bit strings of length $8$ have at least a block of at least $4$ contiguous ones?

644 Views Asked by At

Can take the $8$ bits with the $\ge 4$ contiguous bits as a block. Need consider the different cases separately.
The positions possible for each of the size of blocks is:
(i) $4$ contiguous bits : $^8P_4$,
(ii) $5$ contiguous bits : $^8P_5$,
(iii) $6$ contiguous bits : $^8P_6$,
(iv) $7$ contiguous bits : $^8P_7$,
(v) $8$ contiguous bits : $^8P_8$,
Need to add all these cases by the addition principle, as these are mutually exclusive cases and comprise the solution space.

$=> ^8P_4 + ^8P_5 + ^8P_6 +^8P_7 + ^8P_8$

But, also need to consider the possible choices for each case. Also, in each case, except the last two cases above there is chance that two positions at the both sides of the contiguous block are $0$. I mean that it is possible that one end is the start position for the contiguous bits as $11110000$ which is different from $01111011$. For the case of $4$ contiguous bits, will the chances be :

$^8P_4\cdot(\,\,$case $00001111+$ case $11110000+$cases: $ (0/1)1111(0/1)(0/1)(0/1)\,\,) + $ cases$ (0/1)(0/1)(0/1)1111(0/1) \,\,)$

$=> ^8P_4\cdot(\,\, 1 + 1 + 2^4 +2^4)$

$=> ^8P_4\cdot(\,\, 2+ 2\cdot2^4)$

If the above analysis is correct for the case of $4$ contiguous bits, then how to generalize it for more bits.

======

Update :- My post considers $8$ separate positions, & then takes the $i=\{4,5,6,7,8\}$ possible contiguous $1$s. It takes the possible permutations of these all, then multiplies by the ways the other digits are chosen (i.e. $0,1$); & then adds all of these cases.

This is defective, as the $i$ contiguous $1$s are a unit, leaving only $5$ positions.
This is not obvious (to me), but can be checked by comparing the values of $^8P_4(=1680)$ to $^5P_4(=120)$.

Second, the $8-i$ positions can take a value based on where there are w.r.t. the contiguous block; i.e. if next to the block, then only one choice. This means that if the block is in a corner, then different number of choices are possible. So, need to consider individual cases.
This part is not a shortcoming of my answer, as have considered individual case separately.

Third, there is overlap between cases, as pointed out by the sole answer.

=======

Update 2 The python code for finding the sets' elements, & the intersection sets is given here, as provided by @SiongThyeGoh.

=========

Update 3 This is to have record of chats with @Siong Thye Goh :
(i) dt. 7th, 8th, 9th, 10th Oct., 2018; at: https://chat.stackexchange.com/transcript/84135/2018/10/7,
(ii) dt. 08 Nov. , 2018: https://chat.stackexchange.com/rooms/85486/jiten,
(iii) dt. 27 Nov. , 2018: https://chat.stackexchange.com/rooms/86261/8-bit-strings-having-4-contiguous,
(iv) dt. 17th Dec., 2018: https://chat.stackexchange.com/rooms/87190/stack-error-py3.

6

There are 6 best solutions below

26
On BEST ANSWER

The numbers are small that a brute force way is possible (though not encouraged):

The bit strings can be of the following form:

  • $11110xyz$ : $2^3$ possibilities
  • $011110xy$ : $2^2$ possibilities
  • $x011110y$ : $2^2$ possibilities
  • $xy011110$ : $2^2$ possibilities
  • $xyz01111$ : $2^3$ possibilities
  • $111110xy$ : $2^2$ possibilities
  • $0111110x$ : $2^1$ possibilities
  • $x0111110$ : $2^1$ possibilities
  • $xy011111$ : $2^2$ possibilities
  • $1111110x$ : $2^1$ possibilities
  • $01111110$ : $2^0$ possibilities
  • $x0111111$ : $2^1$ possibilities
  • $11111110$ : $2^0$ possibilities
  • $01111111$ : $2^0$ possibilities
  • $11111111$ : $2^0$ possibilities

Hence there are a total of $$2(2^3)+5(2^2)+4(2)+4(1)=48 \text{ bit strings}$$

Edit:

If $A_i$ is the set of strings where positions $i$ to $i+3$ must take value $1$.

For this particular example, we note that $A_i \cap A_j \neq \emptyset$. Also, also for this particular question, the consecutive block of $1$ with lenght at least $4$ must be connected. if we assume $j>i$, in fact, we have $$|A_i \cap A_j | = 2^{8-((j+3)-i+1)}=2^{4-j+i}$$

Also, we have $A_i \cap A_j \cap A_k = A_{\max(i,j,k)} \cap A_{\min(i,j,k)}$ for this particular example.

With the help of Python, we can use inclusion exclusion principle to conclude that the cardinality is

\begin{align}\left| \bigcup_{i=1}^5 A_i\right|&=\sum_{i=1}^52^4- \sum_{i=1}^4 \sum_{j=i+1}^52^{4-j+i} + \sum_{i=1}^3 \sum_{j=i+1}^4\sum_{k=j+1}^52^{4-k+i}-\sum_{i=1}^2 \sum_{j=i+1}^3\sum_{k=j+1}^4\sum_{l=k+1}^52^{4-l+i}+1\\&=\sum_{i=1}^52^4 - \sum_{d=1}^4 (5-d)2^{4-d} + \sum_{d=2}^4(5-d) \binom{d-1}{1}2^{4-d}-\sum_{d=3}^4(5-d)\binom{d-1}2 2^{4-d}+1 \\&= 80 + \sum_{i=1}^4 (-1)^i\sum_{d=i}^4(5-d) \binom{d-1}{i-1}2^{4-d} \\&=80-49+23-7+1=48 \end{align}

21
On

Since there are two ways to fill each position in a bit string, there are $2^8 = 256$ bit strings of length $8$. From these, we must subtract those bit strings with fewer than four consecutive ones.

Let $a_n$ denote the number of bit strings of length $n$ with fewer than four consecutive bit ones. Observe that any bit string of length one, two, or three has fewer than four consecutive ones and that the only bit string of length $4$ that contains four consecutive ones is $1111$. Hence, we have the initial conditions \begin{align*} a_1 & = 2\\ a_2 & = 4\\ a_3 & = 8\\ a_4 & = 15 \end{align*} A bit string with fewer than four consecutive ones can begin in one of four ways. They are $0$, $10$, $110$, and $1110$.

  • If an admissible bit string of length $n$ begins with $0$, the initial $0$ must be followed by an admissible bit string of length $n - 1$, of which there are $a_{n - 1}$.
  • If an admissible bit string of length $n$ begins with $10$, the initial string $10$ must be followed by an admissible bit string of length $n - 2$, of which there are $a_{n - 2}$.
  • If an admissible bit string of length $n$ begins with $110$, the initial string $110$ must be followed by an admissible bit string of length $n - 3$, of which there are $a_{n - 3}$.
  • If an admissible bit string of length $n$ begins with $1110$, the initial string $1110$ must be followed by an admissible bit string of length $n - 4$, of which there are $a_{n - 4}$.

Since these four cases are mutually exclusive and exhaustive, we have the recurrence relation $$a_n = a_{n - 1} + a_{n - 2} + a_{n - 3} + a_{n - 4}, n \geq 5$$ Applying the recurrence relation to the initial conditions yields \begin{align*} a_5 & = 29\\ a_6 & = 56\\ a_7 & = 108\\ a_8 & = 208 \end{align*} As a check, observe that of the $2^5 = 32$ bit strings of length $5$, the only ones that do not have fewer than four consecutive ones are $01111$, $11110$, and $11111$, so there are $32 - 3 = 29$ bit strings of length $5$ that have fewer than four consecutive ones, which agrees with our count.

Since there are $256$ bit strings of length $8$ and $208$ of these bit strings of length $8$ have fewer than four consecutive ones, the number of bit strings of length $8$ that have at least four consecutive ones is $256 - 208 = 48$.

1
On

The general solution is thoroughly explained in this related post, and is given by

Number of binary strings, with $s$ "$1$"'s and $m$ "$0$"'s in total, that have up to $r$ consecutive $1$s : $$ N_b (s,r,m + 1)\quad \left| {\;0 \leqslant \text{integers }s,m,r} \right.\quad = \sum\limits_{\left( {0\, \leqslant } \right)\,\,k\,\,\left( { \leqslant \,\frac{s}{r+1}\, \leqslant \,m + 1} \right)} { \left( { - 1} \right)^k \binom{m+1}{k} \binom {s + m - k\left( {r + 1} \right) }{s - k\left( {r + 1} \right) } } $$ and which are the coefficients of $x^s$ in $$ \left( {{{1 - x^{\,r + 1} } \over {1 - x}}} \right)^{\,m + 1} $$

Fixing the length to be $n$, summing over $m$ the above repartition into $n-m$ ones and $m$ zeros, we get

Number of binary strings of lenght $n$, that have up to $r$ consecutive $1$s : $$ M_b (n,r)\quad = \sum\limits_{\left( {0\, \le } \right)\,\,m\,\,\left( { \le \,n} \right)} { \sum\limits_{\left( {0\, \le } \right)\,\,k\,\,\left( { \le \,{{n-m} \over {r+1}}\, \le \,m + 1} \right)} { \left( { - 1} \right)^k \binom{m+1}{k} \binom{n - k\left( {r + 1} \right)}{ n - m - k\left( {r + 1} \right) } } } $$ which doesn't look to be further simplifiable.

In your case we have $$ M_b (8,r)\quad \left| {\;0 \le r \le 8} \right.\quad = 1,\;55,\;149,\;208,\;236,\;248,\;253,\;255,\;256 $$ thus $M_b (8,3)=208$, and the number of strings having $4$ or more consecutive ones is $2^8-208=48$

Note that those having exactly a maximum of $4$ consecutive ones are $M_b (8,4) -M_b (8,3)=28$

Finally, $M_b (n,r)$ is the OEIS sequence A126198 : "number of compositions of n into parts of size <= k".

0
On

Let's correct your original attempt. If there are at least four consecutive ones in a bit string of length eight, then the bit string must contain a substring with exactly four consecutive ones, exactly five consecutive ones, exactly six consecutive ones, exactly seven consecutive ones, or eight consecutive ones.

Exactly four consecutive ones: If the four consecutive ones are in the first four positions, the fifth position must be a zero, and there are two choices for each of the last three positions. Hence, there are $2^3$ such strings.

If the four consecutive ones are in the last four positions, the fourth position must be a zero, and there are two choices for each of the first three positions. Hence, there are $2^3$ such strings.

If the string of exactly four consecutive ones begins in the second, third, or fourth positions, then there must a zero immediately before and immediately after the string of four consecutive ones. That leaves two choices for each of the remaining two positions. Hence, there are $3 \cdot 2^2$ such strings.

Since these three cases are mutually exclusive and exhaustive, there are $$2 \cdot 2^3 + 3 \cdot 2^2 = 28$$ bit strings containing exactly four consecutive ones.

Exactly five consecutive ones: If the five consecutive ones are in the first five positions, the sixth position must be a zero, and there are two choices for each of the last two positions. Hence, there are $2^2$ such strings.

By symmetry, there are $2^2$ strings in which the five consecutive ones are in the last five positions.

If the string of five consecutive ones begins in the second or third positions, there must be a zero immediately before and immediately after the string. That leaves two choices for the remaining position. Hence, there are $2 \cdot 2$ such strings.

Since these cases are mutually exclusive and exhaustive, there are $$2 \cdot 2^2 + 2 \cdot 2 = 12$$ bit strings containing exactly five consecutive ones.

Exactly six consecutive ones: If the string of six consecutive ones begins in the first position, the seventh position must be a zero, and there are two choices for the last position.

By symmetry, there are two bit strings in which the string of six consecutive ones is in the last six positions.

If the six consecutive ones begins in the second position, both the first and last positions must be filled with zeros.

Since these cases are mutually exclusive and exhaustive, there are $$2 \cdot 2 + 1 = 5$$ bit strings with exactly six consecutive ones.

Exactly seven consecutive ones: Either the first or last position must be equal to zero. Hence, there are $2$ bit strings with exactly seven consecutive ones.

Eight consecutive ones: All the positions must be filled with ones, so there is one such string.

Total: Since the above cases are mutually exclusive and exhaustive, there are $28 + 12 + 5 + 2 + 1 = 48$ bit strings with at least four consecutive ones.

15
On

You requested an answer using the Inclusion-Exclusion Principle.

Let $A_i$ be the set of sequences of length $8$ with four consecutive ones beginning in the $i$th position. Such a sequence must begin in one of the first five positions, so the number of sequences with at least four consecutive ones is $|A_1 \cup A_2 \cup A_3 \cup A_4 \cup A_5|$.

By the Inclusion-Exclusion Principle, the number of such sequences is \begin{align*} |A_1 \cup A_2 \cup A_3 \cup A_4 \cup A_5| & = \sum_{i = 1}^{5} |A_i| - \sum_{1 \leq i < j \leq 5} |A_i \cap A_j| + \sum_{1 \leq i < j < k \leq 5} |A_i \cap A_j \cap A_k|\\ & \qquad - \sum_{1 \leq i < j < k < l \leq 5} |A_i \cap A_j \cap A_k \cap A_l| + |A_1 \cap A_2 \cap A_3 \cap A_4 \cap A_5| \end{align*}

$|A_1|$: If there is a $1$ in each of the first four positions, then there are two choices for each of the last four positions, so $|A_1| = 2^4$.

By symmetry, $|A_1| = |A_2| = |A_3| = |A_4| = |A_5|$.

$|A_1 \cap A_2|$: If there is a $1$ in the first four positions and the second four positions, then there is a $1$ in each of the first five positions. There are two choices for each of the last three positions, so $|A_1 \cap A_2| = 2^3$.

By symmetry, $|A_1 \cap A_2| = |A_2 \cap A_3| = |A_3 \cap A_4| = |A_4 \cap A_5|$.

$|A_1 \cap A_3|$: If there is a $1$ in the first four positions and the third four positions, then there is a $1$ in each of the first six positions. There are two choices for each of the last two positions, so $|A_1 \cap A_3| = 2^2$.

By symmetry, $|A_1 \cap A_3| = |A_2 \cap A_4| = |A_3 \cap A_5|$.

$|A_1 \cap A_4|$: If there is a $1$ in the first four positions and the fourth four positions, then there is a $1$ in each of the first seven positions. There are two choices for the eighth position, so $|A_1 \cap A_4| = 2$.

By symmetry, $|A_1 \cap A_4| = |A_2 \cap A_5|$.

$|A_1 \cap A_5|$: If there is a $1$ in the first four positions and the last four positions, then all eight positions are filled with $1$s, so $|A_1 \cap A_5| = 1$.

$|A_1 \cap A_2 \cap A_3|$: If there is a $1$ in the first four positions, second four positions, and third four positions, then the first six positions must be filled with $1$s. There are two choices for each of the last two positions, so $|A_1 \cap A_2 \cap A_3| = 2^2$.

By symmetry, $|A_1 \cap A_2 \cap A_3| = |A_2 \cap A_3 \cap A_4| = |A_3 \cap A_4 \cap A_5|$.

$|A_1 \cap A_2 \cap A_4|$: If there is a $1$ in the first four positions, second four positions, and fourth four positions, then the first seven positions must be filled with $1$s. There are two choices for the eighth position, so $|A_1 \cap A_2 \cap A_4| = 2$.

By symmetry, $|A_1 \cap A_2 \cap A_4| = |A_1 \cap A_3 \cap A_4| = |A_2 \cap A_3 \cap A_5| = |A_2 \cap A_4 \cap A_5|$.

$|A_1 \cap A_2 \cap A_5|$: If there is a $1$ in the first four positions, second four positions, and last four positions, then all eight positions must be filled with $1$s. Hence, $|A_1 \cap A_2 \cap A_5| = 1$.

By symmetry, $|A_1 \cap A_2 \cap A_5| = |A_1 \cap A_3 \cap A_5| = |A_1 \cap A_4 \cap A_5|$.

$|A_1 \cap A_2 \cap A_3 \cap A_4|$: If there is a $1$ in the first four positions, second four positions, third four positions, and fourth four positions, then the first seven positions must be filled with $1$s. There are two choices for the eighth position, so $|A_1 \cap A_2 \cap A_3 \cap A_4| = 2$.

By symmetry, $|A_1 \cap A_2 \cap A_3 \cap A_4| = |A_2 \cap A_3 \cap A_4 \cap A_5|$.

$|A_1 \cap A_2 \cap A_3 \cap A_5|$: If there is a $1$ in the first four positions, second four positions, third four positions, and last four positions, then all eight positions must be filled with $1$s. Hence, $|A_1 \cap A_2 \cap A_3 \cap A_5| = 1$.

By symmetry, $|A_1 \cap A_2 \cap A_3 \cap A_5| = |A_1 \cap A_2 \cap A_4 \cap A_5| = |A_1 \cap A_3 \cap A_4 \cap A_5|$.

$|A_1 \cap A_2 \cap A_3 \cap A_4 \cap A_5|$: If there is a $1$ in the first four positions, second four positions, third four positions, fourth four positions, and last four positions, then all eight positions must be filled with $1$s. Hence, $|A_1 \cap A_2 \cap A_3 \cap A_5| = 1$.

Therefore, by the Inclusion-Exclusion Principle, the number of binary strings of length $8$ with at least four consecutive $1$s is \begin{align*} |A_1 \cup A_2 \cup A_3 \cup A_4 \cup A_5| & = 5 \cdot 2^4 - 4 \cdot 2^3 - 3 \cdot 2^2 - 2 \cdot 2 - 1\\ & \qquad + 3 \cdot 2^2 + 4 \cdot 2 + 3 \cdot 1 - 2 \cdot 2 - 3 \cdot 1 + 1\\ & = 5 \cdot 2^4 - 4 \cdot 2^3\\ & = 48 \end{align*} Notice that unlike the solution I wrote using a recurrence relation for the number of sequences of length $n$ that do not contain at least four consecutive ones, this solution does not generalize to all $n$.

0
On

Let $A_i$, $1 \leq i \leq 5$, be the number of binary sequences in which the first string containing at least four consecutive $1$s begins in the $i$th position.

$|A_1|$: The first four positions must be filled with $1$s. There are two choices for each of the last four positions, so there are $2^4$ such strings.

$|A_2|$: Since the string of at least four consecutive $1$s begins in the second position, the first position must be a $0$. Positions $2$ through $5$ must be filled with $1$s. There are two choices for each of the last three positions, so there are $2^3$ such strings.

$|A_3|$: Since the string of at least four consecutive $1$s begins in the third position, the second position must be a $0$. Positions $3$ through $6$ must be filled with $1$s. There are two choices for each of the other three positions, so there are $2^3$ such strings.

$|A_4|$: Since the string of at least four consecutive $1$s begins in the fourth position, the third position must be a $0$. Positions $4$ through $7$ must be filled with $1$s. There are two choices for each of the other three positions, so there are $2^3$ such strings.

$|A_5|$: Since the string of at least four consecutive $1$s begins in the fifth position, the fourth position must be a $0$. Positions $5$ through $9$ must be filled with $1$s. There are two choices for each of the other three positions, so there are $2^3$ such strings.

Since these five cases are mutually exclusive and exhaustive, the number of strings of length $8$ with at least four consecutive $1$s is $$|A_1| + |A_2| + |A_3| + |A_4| + |A_5| = 2^4 + 4 \cdot 2^3 = 48$$ Note that this method does not generalize to binary strings of length greater than $8$ since such strings can have two (or more) mutually disjoint strings of at least four consecutive ones.