A131095 Triangle where n-th row contains the smallest n positive integers (listed in order) with exactly n nonleading 0's in their binary representations and where the smallest term in the n-th row is > that the largest term in the (n-1)th row.
2, 4, 9, 17, 18, 20, 33, 34, 36, 40, 65, 66, 68, 72, 80, 129, 130, 132, 136, 144, 160, 257, 258, 260, 264, 272, 288, 320, 513, 514, 516, 520, 528, 544, 576, 640, 1025, 1026, 1028, 1032, 1040, 1056, 1088, 1152, 1280, 2049, 2050, 2052, 2056, 2064, 2080, 2112, 2176
Offset: 1
Examples
Binary representations of the terms in the first few rows: 10 100, 1001 10001, 10010, 10100 100001, 100010, 100100, 101000
Links
- Reinhard Zumkeller, Rows n = 1..125 of triangle, flattened
Programs
-
Haskell
import Data.List (sort, nub) a131095 n k = a131095_tabl !! (n-1) !! (k-1) a131095_row n = a131095_tabl !! (n-1) a131095_tabl = [2] : [4, 9] : [17, 18, 20] : f 4 [17, 18, 20] where f v ws = ys : f (v + 1) ys where ys = take v $ dropWhile (<= last ws) $ nub $ sort $ concatMap h ws h z = [2 * z, 4 * z + 1, 4 * z' + b] where (z', b) = divMod z 2 -- Reinhard Zumkeller, Feb 11 2015
-
Maple
A023416 := proc(n) local brep,i ; brep := convert(n,base,2) ; add( 1-op(i,brep),i=1..nops(brep)) ; end: A131095 := proc(rowmax) local a,r,c ; a := 2 ; for r from 1 to rowmax do c := 1 ; while c <= r do if A023416(a) = r then printf("%d, ",a) ; c := c+1 ; fi ; a := a+1 ; od ; od ; end: A131095(10) ; # R. J. Mathar, Jun 15 2007
Extensions
More terms from R. J. Mathar, Jun 15 2007