Predefined Structures in the combstruct Package
|
Calling Sequence
|
|
combstruct[function](struct(args), size=n)
|
|
Parameters
|
|
struct
|
-
|
one of a predefined list of available structures
|
args
|
-
|
argument list that corresponds to the structure struct
|
n
|
-
|
(optional) non-negative integer specifying the size of the object or the string 'allsizes'
|
|
|
|
|
Description
|
|
•
|
Some special combinatorial classes are predefined in the combstruct package. They are Combination or Subset, Permutation, Partition, and Composition.
|
|
Combinations (or subsets) of elements
|
|
The argument is a set, list, or non-negative integer. In the case of a non-negative integer n, it is treated as the set . The default size is .
|
|
Use the string 'allsizes' when the object is selected from all possible sizes. If the size is not specified, each structure has default behavior.
|
|
The argument is a set, list, or non-negative integer. In the case of a non-negative integer n, it is treated as the list . The default size is the number of elements in the set/list.
|
|
Partitions of positive integers into sums of positive integers without regards to order.
|
|
The argument is a positive integer. The default size is 'allsizes'.
|
|
Use the string 'allsizes' when the object is selected from all possible sizes. If the size is not specified, each structure has default behavior.
|
|
Composition of a positive integer n into a positive integer k parts of size at least 1, where the order of summands is meaningful.
|
|
The argument is a positive integer. The default size is .
|
|
Use the string 'allsizes' when the object is selected from all possible sizes. If the size is not specified, each structure has default behavior.
|
•
|
Combination and Subset are different names for the same structure.
|
•
|
You can define your own structure that is understood by the functions in the combstruct package. To create the structure Foo, create the procedures `combstruct/count/Foo`, `combstruct/draw/Foo`, `combstruct/allstructs/Foo`, and `combstruct/iterstructs/Foo`.
|
|
|
Examples
|
|
>
|
|
Count all possible subsets of .
>
|
|
| (1) |
Draw a combination of that has 4 elements.
>
|
|
| (2) |
Count the permutations of , using all three elements.
>
|
|
| (3) |
Create an iterator over all the permutations of that consist of only two elements.
>
|
|
Draw any partition of 9.
>
|
|
| (4) |
List all the compositions of 3 in 2 parts.
>
|
|
| (5) |
|
|