A341406 Run lengths of the bits in A308092, read in binary.
2, 1, 8, 1, 3, 2, 3, 3, 3, 4, 3, 5, 3, 6, 3, 7, 2, 1, 10, 1, 11, 1, 9, 1, 2, 1, 9, 2, 2, 1, 8, 1, 5, 1, 8, 1, 3, 1, 2, 1, 8, 1, 3, 1, 3, 1, 8, 1, 3, 1, 1, 1, 2, 1, 8, 1, 3, 1, 1, 2, 2, 1, 8, 1, 3, 2, 5, 1, 8, 1, 3, 2, 3, 1, 2, 1, 8, 1, 3, 2, 3, 2, 2, 1, 8, 1
Offset: 1
Examples
In binary, A308092 is 1, 10, 11, 111, 1110, 11100, 111000, 1110000, .... The sequence begins with a(1) = 2 ones followed by a(2) = 1 zeros, a(3) = 8 ones, a(4) = 1 zeros, a(5) = 3 ones, a(6) = 2 zeros, and so on. This sequence first disagrees with A342937 at n = 51, where a(51) = 1 and A342937(51) = 2.
Links
- Peter Kagey, Run lengths of bits and run lengths of an auxiliary sequence, Mathematics Stack Exchange.
Programs
-
Python
from itertools import groupby def aupton(terms): A308092, bstr, rl_lst, rl_idx, n = [1, 2], "110", [2], 2, 3 while len(rl_lst) < terms: an = int(bstr[:n], 2) - int(bstr[:n-1], 2) A308092, bstr, n = A308092 + [an], bstr + bin(an)[2:], n+1 new_runs = [len(list(g)) for k, g in groupby(bstr[rl_idx:])] if len(new_runs) > 1: rl_idx += sum(new_runs[:-1]) rl_lst.extend(new_runs[:-1]) # don't take last one in case mid-run return rl_lst[:terms] print(aupton(86)) # Michael S. Branicky, Apr 03 2021