|
|
A137732
|
|
Repeated set splitting, unlabeled elements. Repeated integer partitioning into two parts.
|
|
4
|
|
|
1, 1, 2, 5, 16, 55, 224, 935, 4400, 21262, 111624, 596805, 3457354, 20147882, 125455512, 792576243, 5277532388, 35519373064, 252120178596, 1800810613940, 13492153025558, 102095379031327, 804122472505530, 6395239610004277
(list;
graph;
refs;
listen;
history;
text;
internal format)
|
|
|
OFFSET
|
1,3
|
|
COMMENTS
|
Consider a set of n unlabeled elements. Form all splittings into two subsets. Consider the resulting sets and perform the splittings on all their subsets and so on. In order to understand this structure, imagine that each of the two parts can be put either 'to the left or to the right.
E.g., (4) gives (3,1) and (1,3). That is, the order of parts counts. H(n+1) = number of splittings of the n-set {*,*,...,*} composed of n elements '*'. E.g., H(4)=5 because we have (***), (**,*), (*,**), ((*,*),*), (*,(*,*)).
Equivalently, we have (3), (2,1), (1,2), ((1,1),1), (1,(1,1)). The case for labeled elements is described by A137731. This structure is related to the Double Factorials A000142 for which the recurrence is a(n) = Sum_{k=1..n-1} binomial(n-1,k)*a(k)*a(n-k), with a(1)=1, a(2)=1.
See also A137591 = Number of parenthesizings of products formed by n factors assuming noncommutativity and nonassociativity. See also the Catalan numbers A000108.
|
|
LINKS
|
|
|
FORMULA
|
a(n) = Sum_{k=1..n-1} p(n-1,k)*a(k)*a(n-k), with a(1)=1 and where p(n,k) denotes the number of integer partitions of n into k parts.
|
|
EXAMPLE
|
(1)
(2), (1,1).
(3), (2,1), (1,2), ((1,1),1), (1,(1,1)).
(4), (3,1), (1,3), ((2,1),1), (1,(2,1)), ((1,2),1), (1,(1,2)),
(((1,1),1),1), (1,((1,1),1)), ((1,(1,1)),1), (1,(1,(1,1))),
(2,2), ((1,1),2), (2,(1,1)), ((1,1),(1,1)), ((1,1),(1,1)).
Observe that for (4) we obtain ((1,1),(1,1)), ((1,1),(1,1)) twice.
|
|
MAPLE
|
A008284 := proc(n, k) combinat[numbpart](n, k)-combinat[numbpart](n, k-1) ; end: A137732 := proc(n) option remember ; local i ; if n =1 then 1; else add(A008284(n-1, k)*procname(k)*procname(n-k), k=1..n-1) ; fi ; end: for n from 1 to 40 do printf("%d, ", A137732(n)) ; od: # R. J. Mathar, Aug 25 2008
|
|
MATHEMATICA
|
p[_, 1] = 1; p[n_, k_] /; 1 <= k <= n := p[n, k] = Sum[p[n-i, k-1], {i, 1, n-1}] - Sum[p[n-i, k], {i, 1, k-1}]; p[_, _] = 0; a[1] = 1; a[n_] := a[n] = Sum[p[n-1, k]*a[k]*a[n-k], {k, 1, n-1}]; Table[Print["a(", n, ") = ", a[n]]; a[n], {n, 1, 40}] (* Jean-François Alcover, Feb 03 2017 *)
|
|
PROG
|
Sub A137714() ' This is a VBA program.
Dim n As Long, nstart As Long, nend As Long
Dim k As Long, HSumme As Long, H(100) As Long
nstart = 2
nend = 15
H(1) = 1
For n = nstart To nend
HSumme = 0
For k = 1 To n - 1
HSumme = HSumme + ZahlPartitionen(n - 1, k) * H(k) * H(n - k)
Next k
H(n) = HSumme
Next n
Debug.Print H(1), H(2), H(3), H(4), H(5), H(6), H(7), H(8), H(9), H(10), H(11), H(12), H(13), H(14), H(15)
End Sub
Public Function ZahlPartitionen(n As Long, k As Long)
Dim imsgbox As Integer
If n > 2147483648# Or k > 2147483648# Then
imsgbox = MsgBox("n and k need to be smaller than 2147483648 !", vbOKOnly, "ZahlPartitionen")
End
End If
If (n < 0 Or k < 0) Then
imsgbox = MsgBox("n and k need to be greater than 0 !", vbOKOnly, "ZahlPartitionen")
End
End If
If k = 1 Then
ZahlPartitionen = 1
Exit Function
ElseIf k = n Then
ZahlPartitionen = 1
Exit Function
ElseIf k > n Then
ZahlPartitionen = 0
Exit Function
End If
ZahlPartitionen = ZahlPartitionen(n - 1, k - 1) + ZahlPartitionen(n - k, k)
End Function
|
|
CROSSREFS
|
|
|
KEYWORD
|
nonn
|
|
AUTHOR
|
|
|
EXTENSIONS
|
|
|
STATUS
|
approved
|
|
|
|