login
Irregular table read by rows: Write n in binary. For each 1, the m-th term of row n is the number of 0's between the m-th 1, reading right to left, and the (m-1)th 1 (or the right side of the number if m-1 = 0).
7

%I #34 Jul 17 2023 13:18:40

%S 0,1,0,0,2,0,1,1,0,0,0,0,3,0,2,1,1,0,0,1,2,0,0,1,0,1,0,0,0,0,0,0,4,0,

%T 3,1,2,0,0,2,2,1,0,1,1,1,0,1,0,0,0,1,3,0,0,2,0,1,1,0,0,0,1,0,2,0,0,0,

%U 1,0,0,1,0,0,0,0,0,0,0,0,5,0,4,1,3,0,0,3,2,2,0,1,2,1,0,2,0,0,0,2,3,1,0,2,1,1,1,1,0,0,1,1,2,0,1,0,1,0,1,1,0,0,1

%N Irregular table read by rows: Write n in binary. For each 1, the m-th term of row n is the number of 0's between the m-th 1, reading right to left, and the (m-1)th 1 (or the right side of the number if m-1 = 0).

%C Row n contains exactly A000120(n) terms, for each n.

%C All odd-numbered rows begin with 0. All even-numbered rows begin with a positive integer.

%C Can be used to compute the permutation A163511.

%H Antti Karttunen, <a href="/A163510/b163510.txt">Table of n, a(n) for n = 1..11265</a>

%F a(n) = A227186(A006068(A100922(n-1)), A243067(n)) - 1. - _Antti Karttunen_, Jun 19 2014

%e Table begins as:

%e Row n in Terms on

%e n binary that row

%e 1 1 0; (the distance of 1-bit from the right edge is zero)

%e 2 10 1; (the distance of 1-bit from the right edge is one)

%e 3 11 0,0;

%e 4 100 2;

%e 5 101 0,1; (the least significant 1-bit is zero steps away from the right edge, and there is one zero between those two 1-bits)

%e 6 110 1,0;

%e 7 111 0,0,0;

%e 8 1000 3;

%e 9 1001 0,2;

%e 10 1010 1,1;

%e 11 1011 0,0,1;

%e 12 1100 2,0;

%e 13 1101 0,1,0;

%e 14 1110 1,0,0;

%e 15 1111 0,0,0,0;

%e 16 10000 4;

%t Table[Reverse@ Map[Ceiling[(Length@ # - 1)/2] &, DeleteCases[Split@ Join[Riffle[IntegerDigits[n, 2], 0], {0}], {k__} /; k == 1]], {n, 46}] // Flatten (* _Michael De Vlieger_, Jul 25 2016 *)

%o (Scheme) (define (A163510 n) (- (A227186bi (A006068 (A100922 (- n 1))) (A243067 n)) 1))

%o ;; See A227186 for A227186bi. - _Antti Karttunen_, Jun 19 2014

%o (Python)

%o from itertools import count, islice

%o def A163510_gen(): # generator of terms

%o for n in count(1):

%o k = n

%o while k:

%o yield (s:=(~k&k-1).bit_length())

%o k >>= s+1

%o A163510_list = list(islice(A163510_gen(),30)) # _Chai Wah Wu_, Jul 17 2023

%Y Cf. A000120, A006068, A100922, A227186, A243067, A163511, A227736.

%Y Equals A228351-1, termwise.

%K base,nonn,tabf

%O 1,5

%A _Leroy Quet_, Jul 29 2009

%E Additional terms computed and Example section added by _Antti Karttunen_, Jun 19 2014