OFFSET
0,2
COMMENTS
This is the Run Length Transform of S(n) = Lucas(n+1) = 1,3,4,7,11,... (cf. A000204).
The Run Length Transform of a sequence {S(n), n>=0} is defined to be the sequence {T(n), n>=0} given by T(n) = Product_i S(i), where i runs through the lengths of runs of 1's in the binary expansion of n. E.g. 19 is 10011 in binary, which has two runs of 1's, of lengths 1 and 2. So T(19) = S(1)*S(2). T(0)=1 (the empty product).
LINKS
Alois P. Heinz, Table of n, a(n) for n = 0..8191
EXAMPLE
From Omar E. Pol, Feb 15 2015: (Start)
Written as an irregular triangle in which row lengths are the terms of A011782:
1;
3;
3,4;
3,9,4,7;
3,9,9,12,4,12,7,11;
3,9,9,12,9,27,12,21,4,12,12,16,7,21,11,18;
3,9,9,12,9,27,12,21,9,27,27,36,12,36,21,33,4,12,12,16,12,36,16,28,7,21,21,28,11,33,18,29;
...
Right border gives the Lucas numbers (beginning with 1). This is simply a restatement of the theorem that this sequence is the Run Length Transform of A000204.
(End)
MAPLE
ans:=[];
for n from 0 to 100 do lis:=[]; t1:=convert(n, base, 2); L1:=nops(t1);
out1:=1; c:=0;
for i from 1 to L1 do
if out1 = 1 and t1[i] = 1 then out1:=0; c:=c+1;
elif out1 = 0 and t1[i] = 1 then c:=c+1;
elif out1 = 1 and t1[i] = 0 then c:=c;
elif out1 = 0 and t1[i] = 0 then lis:=[c, op(lis)]; out1:=1; c:=0;
fi;
if i = L1 and c>0 then lis:=[c, op(lis)]; fi;
od:
a:=mul(A000204(i+1), i in lis);
ans:=[op(ans), a];
od:
ans;
PROG
(Python)
from math import prod
from re import split
from sympy import lucas
def run_length_transform(f): return lambda n: prod(f(len(d)) for d in split('0+', bin(n)[2:]) if d != '') if n > 0 else 1
def A246011(n): return run_length_transform(lambda n:lucas(n+1))(n) # Chai Wah Wu, Oct 24 2024
CROSSREFS
KEYWORD
nonn,base
AUTHOR
N. J. A. Sloane, Aug 10 2014; revised Sep 05 2014
STATUS
approved