A354169 a(0) = 0, a(1) = 1, a(2) = 2; for k >= 2, given a(k), the sequence is extended by adjoining two terms: a(2*k-1) = smallest m >= 0 not among a(0) .. a(k) such that {m, a(k), a(k+1), ..., a(2*k-2)} are pairwise disjoint in binary, and a(2*k) = smallest m >= 0 not among a(0) .. a(k) such that {m, a(k), ..., a(2*k-1)} are pairwise disjoint in binary.
0, 1, 2, 4, 8, 3, 16, 32, 64, 12, 128, 256, 512, 17, 1024, 34, 2048, 4096, 8192, 68, 16384, 136, 32768, 65536, 131072, 768, 262144, 524288, 1048576, 1025, 2097152, 18, 4194304, 2080, 8388608, 16777216, 33554432, 12288, 67108864, 134217728, 268435456, 16388
Offset: 0
Examples
After a(2) = 2 = 10_2, a(3) must equal ?0?_2, and the smallest such number we have not seen is a(3) = 100_2 = 4, and a(4) must equal ?00?_2, and the smallest such number we have not seen is a(4) = 1000_2 = 8.
Links
- Rémy Sigrist, Table of n, a(n) for n = 0..4941
- Michael De Vlieger, Thomas Scheuerle, Rémy Sigrist, N. J. A. Sloane, and Walter Trump, The Binary Two-Up Sequence, arXiv:2209.04108 [math.CO], Sep 11 2022.
- Rémy Sigrist, PARI program
- N. J. A. Sloane, Construction of terms a(0) through a(18)
- N. J. A. Sloane, Table showing first 190 terms (pdf file of scan of large table)
- N. J. A. Sloane, Left-hand portion of rows 97-135 of preceding table, showing columns 67-96, rotated counter-clockwise by 90 degrees. The red line in this table should be aligned with the red line between rows 135 and 136 in the preceding table. [This portion of the table was too wide to fit through the scanner.]
- N. J. A. Sloane, Blog post about the Two-Up sequence, June 13 2022. Mentions this sequence.
- N. J. A. Sloane, "A Handbook of Integer Sequences" Fifty Years Later, arXiv:2301.03149 [math.NT], 2023, p. 16.
Crossrefs
Programs
-
Mathematica
nn = 42; c[] = r = 0; m = 1; Array[Set[{a[#], c[#]}, {#, #}] &, 2, 0]; Do[k = SelectFirst[Union@ Map[Total, Rest@ Subsets[2^Reverse[Length[#] - Position[#, 1][[All, 1]]] &@ IntegerDigits[2^(r + 2) - m - 1, 2]]], c[#] == 0 &]; Set[{a[n], c[k]}, {k, n}]; m += a[n]; If[And[IntegerQ[#], # > 0], m -= a[#]] &[n/2]; If[And[EvenQ[k], PrimePowerQ[k], k > 2^r], r++], {n, 2, nn}]; Table[a[n], {n, 0, nn}] (* _Michael De Vlieger, Jul 13 2022 *)
-
PARI
See Links section.
-
Python
from itertools import count, islice from collections import deque from functools import reduce from operator import or_ def A354169_gen(): # generator of terms aset, aqueue, b, f = {0,1,2}, deque([2]), 2, False yield from (0,1,2) while True: for k in count(1): m, j, j2, r, s = 0, 0, 1, b, k while r > 0: r, q = divmod(r,2) if not q: s, y = divmod(s,2) m += y*j2 j += 1 j2 *= 2 if s > 0: m += s*2**b.bit_length() if m not in aset: yield m aset.add(m) aqueue.append(m) if f: aqueue.popleft() b = reduce(or_,aqueue) f = not f break A354169_list = list(islice(A354169_gen(),40)) # Chai Wah Wu, Jun 06 2022
Extensions
More terms from Rémy Sigrist, Jun 06 2022
Comments