OFFSET
1,5
COMMENTS
This is probably the simplest method for putting the nonnegative integers into one-to-one correspondence with the finite sequences of nonnegative integers and is the standard ordering for such sequences in this database.
This sequence contains every finite sequence of nonnegative integers.
This can be regarded as a table in two ways: with each weak composition as a row, or with the weak compositions of each integer as a row. The first way has A000120 as row lengths and A080791 as row sums; the second has A001792 as row lengths and A001787 as row sums. - Franklin T. Adams-Watters, Nov 06 2006
Concatenate the base-two positive integers (A030190 less the initial zero). Left to right and disallowing leading zeros, reorganize the digits into the smallest possible numbers. These will be the base-two powers-of-two of A108730. - Hans Havermann, Nov 14 2009
T(2^(n-1),0) = n-1 and T(m,k) < n-1 for all m < 2^n, k <= A000120(m). When the triangle is seen as a flattened list, each n occurs first at position n*2^(n-1)+1, cf. A005183. - Reinhard Zumkeller, Feb 26 2012
Equals A066099-1, elementwise. - Andrey Zabolotskiy, May 18 2018
LINKS
Franklin T. Adams-Watters, Table of n, a(n) for n = 1..5120 (through 10 bit numbers)
EXAMPLE
Triangle begins:
0
1
0,0
2
1,0
0,1
0,0,0
3
For example, 25 = 11001_2; following the 1's are 0, 2 and 0 zeros, so row 25 is 0, 2, 0.
MATHEMATICA
row[n_] := (id = IntegerDigits[n, 2]; sp = Split[id]; f[run_List] := If[First[run] == 0, run, Sequence @@ Table[{}, {Length[run] - 1}]]; len = Length /@ f /@ sp; If[Last[id] == 0, len, Append[len, 0]]); Flatten[ Table[row[n], {n, 1, 41}]] (* Jean-François Alcover, Jul 13 2012 *)
PROG
(Haskell)
import Data.List (unfoldr, group)
a108730 n k = a108730_tabf !! (n-1) !! (k-1)
a108730_row = f . group . reverse . unfoldr
(\x -> if x == 0 then Nothing else Just $ swap $ divMod x 2) where
f [] = []
f [os] = replicate (length os) 0
f (os:zs:dss) = replicate (length os - 1) 0 ++ [length zs] ++ f dss
a108730_tabf = map a108730_row [1..]
a108730_list = concat a108730_tabf
-- Reinhard Zumkeller, Feb 26 2012
(PARI) row(n)=my(v=vector(hammingweight(n)), t=n); for(i=0, #v-1, v[#v-i] = valuation(t, 2); t>>=v[#v-i]+1); v \\ Charles R Greathouse IV, Sep 14 2015
CROSSREFS
KEYWORD
easy,base,nice,nonn,tabf
AUTHOR
Franklin T. Adams-Watters, Jun 22 2005
EXTENSIONS
Edited by Franklin T. Adams-Watters, Nov 06 2006
STATUS
approved