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.

A382344 Triangle read by rows: T(n, k) is the number of partitions of n into k parts where 0 <= k <= n, and each part is one of 4 kinds.

Original entry on oeis.org

1, 0, 4, 0, 4, 10, 0, 4, 16, 20, 0, 4, 26, 40, 35, 0, 4, 32, 80, 80, 56, 0, 4, 42, 124, 180, 140, 84, 0, 4, 48, 184, 320, 340, 224, 120, 0, 4, 58, 248, 535, 660, 574, 336, 165, 0, 4, 64, 332, 800, 1200, 1184, 896, 480, 220, 0, 4, 74, 416, 1176, 1956, 2284, 1932, 1320, 660, 286
Offset: 0

Views

Author

Peter Dolland, Mar 28 2025

Keywords

Examples

			Triangle starts:
 0 : [1]
 1 : [0, 4]
 2 : [0, 4, 10]
 3 : [0, 4, 16,  20]
 4 : [0, 4, 26,  40,   35]
 5 : [0, 4, 32,  80,   80,   56]
 6 : [0, 4, 42, 124,  180,  140,   84]
 7 : [0, 4, 48, 184,  320,  340,  224,  120]
 8 : [0, 4, 58, 248,  535,  660,  574,  336,  165]
 9 : [0, 4, 64, 332,  800, 1200, 1184,  896,  480, 220]
10 : [0, 4, 74, 416, 1176, 1956, 2284, 1932, 1320, 660, 286]
...
		

Crossrefs

Main diagonal gives A000292(n+1).
Row sums give A023003.
Cf. A008284 (1-kind), A382342 (2-kind), A382343 (3-kind).

Programs

  • Maple
    b:= proc(n, i) option remember; expand(`if`(n=0, 1, `if`(i<1, 0,
          add(x^j*b(n-i*j, min(n-i*j, i-1))*binomial(j+3, 3), j=0..n/i))))
        end:
    T:= (n, k)-> coeff(b(n$2), x, k):
    seq(seq(T(n, k), k=0..n), n=0..10);  # Alois P. Heinz, Mar 28 2025
  • Mathematica
    b[n_, i_] := b[n, i] = Expand[If[n == 0, 1, If[i < 1, 0, Sum[x^j*b[n-i*j, Min[n-i*j, i-1]]*Binomial[j+3, 3], {j, 0, n/i}]]]];
    T[n_, k_] := Coefficient[b[n, n], x, k];
    Table[Table[T[n, k], {k, 0, n}], {n, 0, 10}] // Flatten (* Jean-François Alcover, Aug 07 2025, after Alois P. Heinz *)
  • Python
    from sympy import binomial
    from sympy.utilities.iterables import partitions
    kinds = 4 - 1   # the number of part kinds - 1
    def t_row( n):
        if n == 0 : return [1]
        t = list( [0] * n)
        for p in partitions( n):
            fact = 1
            s = 0
            for k in p :
                s += p[k]
                fact *= binomial( kinds + p[k], kinds)
            if s > 0 :
                t[s - 1] += fact
        return [0] + t

Formula

T(n,n) = binomial(n + 3, 3) = A000292(n + 1).
T(n,1) = 4 for n >= 1.
T(n,k) = A382041(n,k) - A382041(n,k-1) for 1 <= k <= n.
Sum_{k=0..n} (-1)^k * T(n,k) = A022599(n). - Alois P. Heinz, Mar 28 2025