Given a number $a\in[0,1)$ which is written in the form $a=\sum_{k=1}^{\infty} s_k/2^k$ with $s_k\in\{0,1\}$ we want to find a sequence $t_n$ of $0$'s and $1$'s such that the average $(\sum_{k < 2^r} t_k)/2^r$ converges to $a$.

To start things off suppose that the integer part of $2^ra$ is $a_r=\sum_{1\leq k\leq r} s_k 2^{r-k}$ for some $r\geq 0$. We choose a pattern $p_r$ of $0$'s and $1$'s of length $2^r$ such that there are *exactly* $a_r$ $1$'s in it.

Since $s<2^r$, there is *at least* one $0$ in the pattern $p_r$.

Secondly, note that if we repeat the pattern *ad infinitum*, then the average we get is *exactly* $a_r/2^r$.

We now want to inductively extend this to a pattern $p_{r+1}$. Take two copies of $p_r$ as the pattern $q_{r+1}$. Note that this pattern has at least *two* $0$'s.

If $s_{r+1}$ is $0$, then take $p_{r+1}=q_{r+1}$. If $s_{r+1}$ is $1$, then put a $1$ in the *last* available $0$ (this is just to make the choice definite) in $q_{r+1}$ to get $p_{r+1}$.

Note that the pattern $p_0$ is just the pattern consisting of one $0$.

The above can easily be converted into an algorithm that, given a "black box" that "emits" $0$'s and $1$'s, uses that to generate its own sequence of $0$'s and $1$'s. We just make sure that we emit the pattern $p_r$ once for each $r$ starting from $r=0$.

Now this can be applied to any number for which we can calculate the binary expansion using an algorithm.