login
a(n) is the previous term in binary with 0's and 1's put alternatingly before each digit, starting with 0.
2

%I #25 Nov 20 2021 20:41:54

%S 0,0,2,38,9782,641083190,2753431335706502966,

%T 50791843174310108512166439539235563318,

%U 17283568615631356151658578642396687258566665947274335391075779120894446085942

%N a(n) is the previous term in binary with 0's and 1's put alternatingly before each digit, starting with 0.

%C The next term is too large to include.

%C The actual sequence in binary is 0, 00, 0010, 00100110, ... The 0s at the start of each term are required for the sequence to work.

%e a(2) = 0010;

%e a(3) = (0010 + 0101 -> 00100110);

%e a(4) = (00100110 + 01010101 = 0010011000110110).

%e Full explanation:

%e Say we have the term 0010.

%e We get an equal length binary number of alternating 0s and 1s.

%e In this case it would be 0101, and we interlace them like so:

%e 0 1 0 1

%e 0010 + 0101 -> 0 0 1 0 -> 00100110

%o (Python)

%o def combine(a,b):

%o c = ''

%o for i in range(max(len(a),len(b))*2):

%o if i%2 == 0:

%o if len(a) > i/2:

%o c += (a[int(i/2)])

%o else:

%o if len(b) > i/2:

%o c += (b[int(i/2)])

%o return c

%o x = '0'

%o while True:

%o x = combine(combine(len(x)*'0',len(x)*'1')[:len(x)],x)

%o (Python)

%o from itertools import islice

%o def A348162(): # generator of terms

%o s = '0'

%o while True:

%o yield int(s,2)

%o s = ''.join(x+y for x, y in zip('01'*((len(s)+1)//2),s))

%o A348162_list = list(islice(A348162(),9)) # _Chai Wah Wu_, Nov 19 2021

%o (PARI) a(n) = my(ret=0,s=1); for(i=2,n, ret += 1<<s + ret<<(s<<=1)); ret; \\ _Kevin Ryde_, Nov 19 2021

%Y Cf. A014707 (bits of terms), A337580.

%K nonn,base

%O 0,3

%A _Edward Green_, Oct 03 2021