login
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.
2

%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