%I #16 Feb 09 2024 04:46:04
%S 1,2,3,6,4,8,12,9,5,18,17,10,7,19,14,16,11,20,13,24,22,15,32,36,34,25,
%T 23,37,27,21,26,64,69,40,43,29,30,35,39,44,28,42,53,129,72,38,31,81,
%U 45,50,46,47,49,74,41,54,55,51,52,57,58,128,68,70,140,77,60,139,85,33,75,61,59,62,48
%N a(1) = 1, a(2) = 2; for n > 2, a(n) is the smallest unused positive number whose binary value is a substring of the binary value of the sum of all previous terms.
%C The fixed points begin 1, 2, 3, 16, 39, 42, 50, 79, 120, 361, although it is likely there are infinitely more. The sequence is conjectured to be a permutation of the positive numbers.
%H Scott R. Shannon, <a href="/A370046/b370046.txt">Table of n, a(n) for n = 1..10000</a>
%H Scott R. Shannon, <a href="/A370046/a370046.png">Image of the first 50000 terms</a>.
%F a(n) = A317788(n) for any n >= 3. - _Rémy Sigrist_, Feb 09 2024
%e a(7) = 12 as the sum of all previous terms is 1 + 2 + 3 + 6 + 4 + 8 = 24 = 11000_2 and 12 = 1100_2 is the smallest unused number that is a substring of "11000".
%o (Python)
%o from itertools import islice
%o def agen(): # generator of terms
%o s, mink, aset = 3, 3, {1, 2}
%o yield from [1, 2]
%o while True:
%o an, ss = mink, bin(s)[2:]
%o while an in aset or not bin(an)[2:] in ss: an += 1
%o aset.add(an); s += an; yield an
%o while mink in aset: mink += 1
%o print(list(islice(agen(), 75))) # _Michael S. Branicky_, Feb 08 2024
%Y Cf. A317788, A369899 (base 10), A363186, A333410.
%K nonn,base
%O 1,2
%A _Scott R. Shannon_, Feb 08 2024