OFFSET
0,4
COMMENTS
a(n) = number of partitions of n into preceding terms starting from a(1), a(2), a(3), ... (for n > 1), with a(1) type of part a(1), a(2) types of part a(2), ...
LINKS
FORMULA
G.f. A(x) = Sum_{n>=0} a(n)*x^n satisfies A(x) = -x - 2*x^2 + Product_{n>=1} 1/(1 - x^a(n))^a(n).
EXAMPLE
a(3) = 4 because we have [1a, 1a, 1a], [1a, 1a, 1b], [1a, 1b, 1b] and [1b, 1b, 1b].
G.f. = -x - 2*x^2 + 1/((1 - x)*(1 - x)*(1 - x^4)^4*(1 - x^9)^9*(1 - x^14)^14*(1 - x^19)^19*(1 - x^24)^24*(1 - x^39)^39*...) = 1 + x + x^2 + 4*x^3 + 9*x^4 + 14*x^5 + 19*x^6 + 24*x^7 + 39*x^8 + ...
MAPLE
b:= proc(n, i) option remember; `if`(n=0, 1, `if`(i<1, 0,
add(b(n-a(i)*j, i-1)*binomial(a(i)+j-1, j), j=0..n/a(i))))
end:
a:= n-> `if`(n<2, 1, b(n, n-1)):
seq(a(n), n=0..60); # Alois P. Heinz, Oct 16 2017
MATHEMATICA
a[n_] := a[n] = SeriesCoefficient[Product[1/(1 - x^a[k])^a[k], {k, 1, n - 1}], {x, 0, n}]; a[0] = a[1] = 1; Table[a[n], {n, 0, 45}]
PROG
(Python)
from sympy import binomial
from sympy.core.cache import cacheit
@cacheit
def b(n, i): return 1 if n==0 else 0 if i<1 else sum(b(n - a(i)*j, i - 1) * binomial(a(i) + j - 1, j) for j in range(n//a(i) + 1))
def a(n): return 1 if n<2 else b(n, n - 1)
print([a(n) for n in range(51)]) # Indranil Ghosh, Dec 13 2017, after Maple code
KEYWORD
nonn
AUTHOR
Ilya Gutkovskiy, Oct 16 2017
STATUS
approved