OFFSET
1,2
COMMENTS
The set partition of [1,2,3,4] given by 13/2/4 would be encoded as 1213: simply record which part i is in, for i=1..n.
To get row n, read row n-1 from left to right. If row n-1 contains a word abc...d, in which the maximal number is m, then in row n we place the words abc...d1, abc...d2, abc...d3, ..., abc...d(m+1).
This provides a canonical ordering for partitions of a labeled set.
LINKS
Alois P. Heinz, Rows n = 1..8, flattened
R. Kaye, A Gray code for set partitions, Info. Proc. Letts., 5 (1976), 171-173.
EXAMPLE
Triangle begins:
1;
11,12;
111,112,121,122,123;
1111,1112,1121,1122,1123,1211,1212,1213,1221,1222,1223,1231,1232,1233,1234;
11111,11112,11121,11122,11123,...
MAPLE
b:= proc(n) option remember;
`if`(n=1, [[1]], map(x-> seq([x[], i], i=1..max(x[])+1), b(n-1)))
end:
T:= n-> map(x-> parse(cat(x[])), b(n))[]:
seq(T(n), n=1..5); # Alois P. Heinz, Sep 30 2011
MATHEMATICA
b[n_] := b[n] = If[n == 1, {{1}}, Table[Append[#, i], {i, 1, Max[#]+1}]& /@ b[n-1] // Flatten[#, 1]&];
T[n_] := FromDigits /@ b[n];
Array[T, 8] // Flatten (* Jean-François Alcover, Feb 19 2021, after Alois P. Heinz *)
CROSSREFS
KEYWORD
nonn,tabf
AUTHOR
N. J. A. Sloane, Jul 14 2011
STATUS
approved