%I #56 Apr 20 2023 09:02:52
%S 0,1,0,1,1,1,0,0,1,1,0,1,0,1,1,1,1,1,0,0,0,1,1,0,0,1,0,1,0,1,1,1,0,1,
%T 0,0,1,1,1,0,1,1,0,1,1,1,1,1,1,1,0,0,0,0,1,1,0,0,0,1,0,1,0,0,1,1,1,0,
%U 0,1,0,0,1,0,1,1,0,1,0,1,0,1,1,0,1,1,1,1,0,1
%N Triangle T(n, k): Write n in base 2, reverse order of digits, to get the n-th row.
%C This is the quite common, so-called "bittest" function, see PARI code. - _M. F. Hasler_, Jul 21 2013
%C For a given number m and a digit position k the corresponding sequence index n can be calculated by n(m, k) = m*(1 + floor(log_2(m))) - 2^(1 + floor(log_2(m))) + k + 1. For example: counted from right to left, the second digit of m = 13 (binary 1101) is '0'. Hence the sequence index is n = n(13, 2) = 39. - _Hieronymus Fischer_, May 05 2007
%C A070939(n) is the length of n-th row; A000120(n) is the sum of n-th row; A030101(n) is the n-th row seen as binary number; A000035(n) = T(n, 0). - _Reinhard Zumkeller_, Jun 17 2012
%H Reinhard Zumkeller, <a href="/A030308/b030308.txt">Rows n = 0..1023 of triangle, flattened</a>
%H <a href="/index/Bi#binary">Index entries for sequences related to binary expansion of n</a>
%F a(n) = floor(m/2^(k - 1)) mod 2, where m = max(j|A001855(j) < n) and k = n - A001855(m). - _Hieronymus Fischer_, May 05 2007, Sep 10 2007
%F T(n, k) = (n // 2^k) mod 2, for 0 <= k <= log[2](n) and n > 0; T(0, 0) = 0. ('//' denotes integer division). - _Peter Luschny_, Apr 20 2023
%e Triangle begins :
%e 0
%e 1
%e 0, 1
%e 1, 1
%e 0, 0, 1
%e 1, 0, 1
%e 0, 1, 1
%e 1, 1, 1
%e 0, 0, 0, 1
%e 1, 0, 0, 1 - _Philippe Deléham_, Oct 12 2011
%p A030308_row := n -> op(convert(n,base, 2)):
%p seq(A030308_row(n), n=0..23); # _Peter Luschny_, Nov 28 2017
%t Flatten[Table[Reverse[IntegerDigits[n, 2]], {n, 0, 23}]] (* _T. D. Noe_, Oct 12 2011 *)
%o (Haskell)
%o a030308 n k = a030308_tabf !! n !! k
%o a030308_row n = a030308_tabf !! n
%o a030308_tabf = iterate bSucc [0] where
%o bSucc [] = [1]
%o bSucc (0 : bs) = 1 : bs
%o bSucc (1 : bs) = 0 : bSucc bs
%o -- _Reinhard Zumkeller_, Jun 17 2012
%o (PARI) A030308(n,k)=bittest(n,k) \\ Assuming that columns are numbered starting with k=0, as suggested by the formula from R. Zumkeller. - _M. F. Hasler_, Jul 21 2013
%o (Python) for n in range(20): print([int(z) for z in str(bin(n)[2:])[::-1]]) # _Indranil Ghosh_, Mar 31 2017
%o (Sage)
%o A030308_row = lambda n: n.bits() if n > 0 else [0]
%o for n in (0..23): print(A030308_row(n)) # _Peter Luschny_, Nov 28 2017
%o (Scala) (0 to 31).map(Integer.toString(_, 2).reverse).mkString.split("").map(Integer.parseInt(_)).toList // _Alonso del Arte_, Feb 10 2020
%Y Cf. A030190.
%Y Cf. A030341, A030386, A031235, A030567, A031007, A031045, A031087, A031298 for the base-3 to base-10 analogs.
%K nonn,base,easy,tabf
%O 0,1
%A _Clark Kimberling_
%E Initial 0 and better name by _Philippe Deléham_, Oct 12 2011