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.

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

Original entry on oeis.org

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

Views

Author

Omar E. Pol, Aug 24 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 co-lexicographic. [Joerg Arndt, Sep 02 2013]
The equivalent sequence for partitions is A211992.
Row n has length A001792(n-1).
Row sums give A001787, n >= 1.

Examples

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

Crossrefs

Programs

  • 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