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.

A228369 Triangle read by rows in which row n lists the compositions (ordered partitions) of n in lexicographic order.

Original entry on oeis.org

1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 1, 3, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 3, 2, 1, 1, 2, 2, 3, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 3, 1, 2, 1, 1, 1, 2, 2, 1, 3, 1, 1, 4, 2, 1, 1, 1, 2, 1, 2, 2, 2, 1, 2, 3, 3, 1, 1, 3, 2, 4, 1, 5, 1, 1, 1, 1, 1, 1
Offset: 1

Views

Author

Omar E. Pol, Aug 28 2013

Keywords

Comments

The representation of the compositions (for fixed n) is as lists of parts, the order between individual compositions (for the same n) is lexicographic. - Joerg Arndt, Sep 02 2013
The equivalent sequence for partitions is A026791.
Row n has length A001792(n-1).
Row sums give A001787, n >= 1.
The m-th composition has length A008687(m+1), m >= 1. - Andrey Zabolotskiy, Jul 19 2017

Examples

			Illustration of initial terms:
-----------------------------------
n  j       Diagram   Composition j
-----------------------------------
.               _
1  1           |_|   1;
.             _ _
2  1         | |_|   1, 1,
2  2         |_ _|   2;
.           _ _ _
3  1       | | |_|   1, 1, 1,
3  2       | |_ _|   1, 2,
3  3       |   |_|   2, 1,
3  4       |_ _ _|   3;
.         _ _ _ _
4  1     | | | |_|   1, 1, 1, 1,
4  2     | | |_ _|   1, 1, 2,
4  3     | |   |_|   1, 2, 1,
4  4     | |_ _ _|   1, 3,
4  5     |   | |_|   2, 1, 1,
4  6     |   |_ _|   2, 2,
4  7     |     |_|   3, 1,
4  8     |_ _ _ _|   4;
.
Triangle begins:
[1];
[1,1],[2];
[1,1,1],[1,2],[2,1],[3];
[1,1,1,1],[1,1,2],[1,2,1],[1,3],[2,1,1],[2,2],[3,1],[4];
[1,1,1,1,1],[1,1,1,2],[1,1,2,1],[1,1,3],[1,2,1,1],[1,2,2],[1,3,1],[1,4],[2,1,1,1],[2,1,2],[2,2,1],[2,3],[3,1,1],[3,2],[4,1],[5];
...
		

Crossrefs

Programs

  • Haskell
    a228369 n = a228369_list !! (n - 1)
    a228369_list = concatMap a228369_row [1..]
    a228369_row 0 = []
    a228369_row n
      | 2^k == 2 * n + 2 = [k - 1]
      | otherwise        = a228369_row (n `div` 2^k) ++ [k] where
        k = a007814 (n + 1) + 1
    -- Peter Kagey, Jun 27 2016
    
  • Mathematica
    Table[Sort[Join@@Permutations/@IntegerPartitions[n],OrderedQ[PadRight[{#1,#2}]]&],{n,5}] (* Gus Wiseman, Dec 14 2017 *)
  • PARI
    gen_comp(n)=
    {  /* Generate compositions of n as lists of parts (order is lex): */
        my(ct = 0);
        my(m, z, pt);
        \\ init:
        my( a = vector(n, j, 1) );
        m = n;
        while ( 1,
            ct += 1;
            pt = vector(m, j, a[j]);
            /* for A228369  print composition: */
            for (j=1, m, print1(pt[j],", ") );
    \\        /* for A228525 print reversed (order is colex): */
    \\        forstep (j=m, 1, -1, print1(pt[j],", ") );
            if ( m<=1,  return(ct) );  \\ current is last
            a[m-1] += 1;
            z = a[m] - 2;
            a[m] = 1;
            m += z;
        );
        return(ct);
    }
    for(n=1, 12, gen_comp(n) );
    \\ Joerg Arndt, Sep 02 2013
    
  • Python
    a = [[[]], [[1]]]
    for s in range(2, 9):
        a.append([])
        for k in range(1, s+1):
            for ss in a[s-k]:
                a[-1].append([k]+ss)
    print(a)
    # Andrey Zabolotskiy, Jul 19 2017