structures - Maple Help
For the best experience, we recommend viewing online help using Google Chrome or Microsoft Edge.

Online Help

All Products    Maple    MapleSim


Predefined Structures in the combstruct Package

 

Calling Sequence

Parameters

Description

Examples

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.

  

Combination or Subset:

  

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 {1,2,...,n}.  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.

  

Permutation:

  

Permutations 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 list [1,2,...,n].  The default size is the number of elements in the set/list.

  

Partition:

  

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:

  

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 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.

• 

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`.

  

Each of these functions must take size as their first argument, a non-negative integer, the string allsizes or the string default, with the arguments that your structure needs. Thus, drawFoox,y,z,size=n invokes `combstruct/draw/Foo`(n, x, y, z).

Examples

withcombstruct:

Count all possible subsets of 1,2,3.

countSubset1,2,3

8

(1)

Draw a combination of 1,2,3,4,5 that has 4 elements.

drawCombination5,size=4

1,2,3,4

(2)

Count the permutations of a,a,b, using all three elements.

countPermutationa,a,b

3

(3)

Create an iterator over all the permutations of a,a,b that consist of only two elements.

ititerstructsPermutationa,a,b,size=2:

Draw any partition of 9.

drawPartition9

2,2,5

(4)

List all the compositions of 3 in 2 parts.

allstructsComposition3,size=2

1,2,2,1

(5)

See Also

combstruct

combstruct[allstructs]

combstruct[count]

combstruct[draw]

combstruct[iterstructs]