PartitionsSet( set )
PartitionsSet( set, k )
NrPartitionsSet( set )
NrPartitionsSet( set, k )
In the first form PartitionsSet returns the set of all unordered
partitions of the set set. In the second form PartitionsSet returns
the set of all unordered partitions of the set set into k pairwise
disjoint nonempty sets.
In the first form NrPartitionsSet returns the number of unordered
partitions of the set set. In the second form NrPartitionsSet
returns the number of unordered partitions of the set set into k
pairwise disjoint nonempty sets.
An unordered partition of set is a set of pairwise disjoint nonempty sets with union set and is represented by a sorted list of such sets. There are B( |set| ) (see Bell) partitions of the set set and S_2( |set|, k ) (see Stirling2) partitions with k elements.
gap> PartitionsSet( [1,2,3] );
[ [ [ 1 ], [ 2 ], [ 3 ] ], [ [ 1 ], [ 2, 3 ] ], [ [ 1, 2 ], [ 3 ] ],
[ [ 1, 2, 3 ] ], [ [ 1, 3 ], [ 2 ] ] ]
gap> PartitionsSet( [1,2,3,4], 2 );
[ [ [ 1 ], [ 2, 3, 4 ] ], [ [ 1, 2 ], [ 3, 4 ] ],
[ [ 1, 2, 3 ], [ 4 ] ], [ [ 1, 2, 4 ], [ 3 ] ],
[ [ 1, 3 ], [ 2, 4 ] ], [ [ 1, 3, 4 ], [ 2 ] ],
[ [ 1, 4 ], [ 2, 3 ] ] ]
gap> NrPartitionsSet( [1..6] );
203
gap> NrPartitionsSet( [1..10], 3 );
9330
Note that PartitionsSet does currently not support multisets and that
there is currently no ordered counterpart.
GAP 3.4.4