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.

A133121 Triangle T(n,k) read by rows = number of partitions of n such that number of parts minus number of distinct parts is equal to k, k = 0..n-1.

Original entry on oeis.org

1, 1, 1, 2, 0, 1, 2, 2, 0, 1, 3, 2, 1, 0, 1, 4, 2, 3, 1, 0, 1, 5, 4, 2, 2, 1, 0, 1, 6, 6, 3, 3, 2, 1, 0, 1, 8, 7, 5, 4, 2, 2, 1, 0, 1, 10, 8, 10, 3, 5, 2, 2, 1, 0, 1, 12, 13, 8, 9, 4, 4, 2, 2, 1, 0, 1, 15, 15, 14, 10, 8, 5, 4, 2, 2, 1, 0, 1, 18, 21, 15, 16, 8, 9, 4, 4, 2, 2, 1, 0, 1, 22, 25, 23, 17, 17, 7, 10, 4, 4, 2, 2, 1, 0, 1
Offset: 1

Views

Author

Vladeta Jovovic, Sep 18 2007

Keywords

Examples

			1
1,1
2,0,1
2,2,0,1
3,2,1,0,1
4,2,3,1,0,1
5,4,2,2,1,0,1
6,6,3,3,2,1,0,1
8,7,5,4,2,2,1,0,1
10,8,10,3,5,2,2,1,0,1
12,13,8,9,4,4,2,2,1,0,1
15,15,14,10,8,5,4,2,2,1,0,1
18,21,15,16,8,9,4,4,2,2,1,0,1
From _Gus Wiseman_, Jan 23 2019: (Start)
It is possible to augment the triangle to cover the n = 0 and k = n cases, giving:
   1
   1  0
   1  1  0
   2  0  1  0
   2  2  0  1  0
   3  2  1  0  1  0
   4  2  3  1  0  1  0
   5  4  2  2  1  0  1  0
   6  6  3  3  2  1  0  1  0
   8  7  5  4  2  2  1  0  1  0
  10  8 10  3  5  2  2  1  0  1  0
  12 13  8  9  4  4  2  2  1  0  1  0
  15 15 14 10  8  5  4  2  2  1  0  1  0
  18 21 15 16  8  9  4  4  2  2  1  0  1  0
  22 25 23 17 17  7 10  4  4  2  2  1  0  1  0
  27 30 32 21 19 16  8  9  4  4  2  2  1  0  1  0
Row seven {5, 4, 2, 2, 1, 0, 1, 0} counts the following integer partitions (empty columns not shown).
  (7)    (322)   (2221)  (22111)  (211111)  (1111111)
  (43)   (331)   (4111)  (31111)
  (52)   (511)
  (61)   (3211)
  (421)
(End)
		

Crossrefs

Row sums are A000041. Row polynomials evaluated at -1 are A268498. Row polynomials evaluated at 2 are A006951.

Programs

  • Maple
    b:= proc(n, i) option remember; expand(`if`(n=0, 1, `if`(i<1, 0,
           add(x^`if`(j=0, 0, j-1)*b(n-i*j, i-1), j=0..n/i))))
        end:
    T:= n-> (p-> seq(coeff(p, x, i), i=0..n-1))(b(n$2)):
    seq(T(n), n=1..16);  # Alois P. Heinz, Aug 21 2015
  • Mathematica
    b[n_, i_] := b[n, i] = Expand[If[n == 0, 1, If[i < 1, 0, Sum[x^If[j == 0, 0, j-1]*b[n - i*j, i - 1], {j, 0, n/i}]]]]; T[n_] := Function [p, Table[ Coefficient[p, x, i], {i, 0, n - 1}]][b[n, n]]; Table[T[n], {n, 1, 16}] // Flatten (* Jean-François Alcover, Jan 23 2016, after Alois P. Heinz *)
    Table[Length[Select[IntegerPartitions[n],Length[#]-Length[Union[#]]==k&]],{n,0,15},{k,0,n}] (* augmented version, Gus Wiseman, Jan 23 2019 *)
  • PARI
    partitm(n,m,nmin)={ local(resul,partj) ; if( n < 0 || m <0, return([;]) ; ) ; resul=matrix(0,m); if(m==0, return(resul); ) ; for(j=max(1,nmin),n\m, partj=partitm(n-j,m-1,j) ; for(r1=1,matsize(partj)[1], resul=concat(resul,concat([j],partj[r1,])) ; ) ; ) ; if(m==1 && n >= nmin, resul=concat(resul,[[n]]) ; ) ; return(resul) ; }
    partit(n)={ local(resul,partm,filr) ; if( n < 0, return([;]) ; ) ; resul=matrix(0,n) ; for(m=1,n, partm=partitm(n,m,1) ; filr=vector(n-m) ; for(r1=1,matsize(partm)[1], resul=concat( resul,concat(partm[r1,],filr) ) ; ) ; ) ; return(resul) ; }
    A133121row(n)={ local(p=partit(n),resul=vector(n),nprts,ndprts) ; for(r=1,matsize(p)[1], nprts=0 ; ndprts=0 ; for(c=1,n, if( p[r,c]==0, break, nprts++ ; if(c==1, ndprts++, if(p[r,c]!=p[r,c-1], ndprts++ ) ; ) ; ) ; ) ; k=nprts-ndprts; resul[k+1]++ ; ) ; return(resul) ; }
    A133121()={ for(n=1,20, arow=A133121row(n) ; for(k=1,n, print1(arow[k],",") ; ) ; ) ; }
    A133121() ; \\ R. J. Mathar, Sep 28 2007
    
  • PARI
    tabl(nn) = my(pl = prod(n=1, nn, 1+x^n/(1-y*x^n)) + O(x^nn)); for (k=1, nn-1, print(Vecrev(polcoeff(pl,k,x)))); \\ Michel Marcus, Aug 23 2015

Formula

G.f.: Product_{n>=1} 1 + x^n/(1-y*x^n).

Extensions

More terms from R. J. Mathar, Sep 28 2007