cp's OEIS Frontend

This is a front-end for the Online Encyclopedia of Integer Sequences, made by Christian Perfect. The idea is to provide OEIS entries in non-ancient HTML, and then to think about how they're presented visually. The source code is on GitHub.

A246011 a(n) = Product_{i in row n of A245562} Lucas(i+1), where Lucas = A000204.

Original entry on oeis.org

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, 3, 9, 9, 12, 9, 27, 12, 21, 9, 27, 27, 36, 12, 36, 21, 33, 9, 27, 27, 36, 27
Offset: 0

Views

Author

N. J. A. Sloane, Aug 10 2014; revised Sep 05 2014

Keywords

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).

Examples

			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)
		

Crossrefs

Programs

  • Maple
    A000204 := proc(n) option remember; if n <=2 then 2*n-1; else A000204(n-1)+A000204(n-2); fi; end;
    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;
  • 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