M:=499; a:=array(0..500); a[0]:=0; a[1]:=1; a[2]:=1; for n from 0 to 2 do lprint(n,a[n]); od: for n from 2 to M do a[n+1]:=(n+2)*a[n]+2*add(binomial(n,k)*a[k]*a[n-k+1],k=2..n-1); lprint(n+1,a[n+1]); od:
Order := 50; t1 := solve(series((exp(A)-2*A-1),A)=-x,A); A000311 := n-> n!*coeff(t1,x,n);
# second Maple program:
b:= proc(n, i) option remember; `if`(n=0, 1, `if`(i<1, 0,
add(combinat[multinomial](n, n-i*j, i$j)/j!*
a(i)^j*b(n-i*j, i-1), j=0..n/i)))
end:
a:= n-> `if`(n<2, n, b(n, n-1)):
seq(a(n), n=0..40); # Alois P. Heinz, Jan 28 2016
# faster program:
b:= proc(n, i) option remember;
`if`(i=0 and n=0, 1, `if`(i<=0 or i>n, 0,
i*b(n-1, i) + (n+i-1)*b(n-1, i-1))) end:
a:= n -> `if`(n<2, n, add(b(n-1, i), i=0..n-1)):
seq(a(n), n=0..40); # Peter Luschny, Feb 15 2021
nn = 19; CoefficientList[ InverseSeries[ Series[1+2a-E^a, {a, 0, nn}], x], x]*Range[0, nn]! (* Jean-François Alcover, Jul 21 2011 *)
a[ n_] := If[ n < 1, 0, n! SeriesCoefficient[ InverseSeries[ Series[ 1 + 2 x - Exp[x], {x, 0, n}]], n]]; (* Michael Somos, Jun 04 2012 *)
a[n_] := (If[n < 2,n,(column = ConstantArray[0, n - 1]; column[[1]] = 1; For[j = 3, j <= n, j++, column = column * Flatten[{Range[j - 2], ConstantArray[0, (n - j) + 1]}] + Drop[Prepend[column, 0], -1] * Flatten[{Range[j - 1, 2*j - 3], ConstantArray[0, n - j]}];]; Sum[column[[i]], {i, n - 1}] )]); Table[a[n], {n, 0, 20}] (* Peter Regner, Oct 05 2012, after a formula by Felsenstein (1978) *)
multinomial[n_, k_List] := n!/Times @@ (k!); b[n_, i_] := b[n, i] = If[n == 0, 1, If[i<1, 0, Sum[multinomial[n, Join[{n-i*j}, Array[i&,j]]]/j!*a[i]^j *b[n-i*j, i-1], {j, 0, n/i}]]]; a[n_] := If[n<2, n, b[n, n-1]]; Table[ a[n], {n, 0, 40}] (* Jean-François Alcover, Feb 07 2016, after Alois P. Heinz *)
sps[{}]:={{}};sps[set:{i_,_}]:=Join@@Function[s,Prepend[#,s]&/@sps[Complement[set,s]]]/@Cases[Subsets[set],{i,_}];
mtot[m_]:=Prepend[Join@@Table[Tuples[mtot/@p],{p,Select[sps[m],1Gus Wiseman, Dec 28 2019 *)
(* Lengthy but easy to follow *)
lead[, n /; n < 3] := 0
lead[h_, n_] := Module[{p, i},
p = Position[h, {_}];
Sum[MapAt[{#, n} &, h, p[[i]]], {i, Length[p]}]
]
follow[h_, n_] := Module[{r, i},
r = Replace[Position[h, {_}], {a__} -> {a, -1}, 1];
Sum[Insert[h, n, r[[i]]], {i, Length[r]}]
]
marry[, n /; n < 3] := 0
marry[h_, n_] := Module[{p, i},
p = Position[h, _Integer];
Sum[MapAt[{#, n} &, h, p[[i]]], {i, Length[p]}]
]
extend[a_ + b_, n_] := extend[a, n] + extend[b, n]
extend[a_, n_] := lead[a, n] + follow[a, n] + marry[a, n]
hierarchies[1] := hierarchies[1] = extend[hier[{}], 1]
hierarchies[n_] := hierarchies[n] = extend[hierarchies[n - 1], n] (* Daniel Geisler, Aug 22 2022 *)
Comments