combstruct
draw
draw random combinatorial object
count
count combinatorial objects of a specified size
Calling Sequence
Parameters
Description
Examples
draw([A, spec, typ], size=n)
draw(struct(args), size=n)
count([A, spec, typ], size=n)
count(struct(args), size=n)
A
-
nonterminal of spec
spec
combinatorial specification
typ
labeling type; 'labeled' or 'unlabeled', the default is 'unlabeled'
n
(optional with structures) non-negative integer specifying the size of the object, or string 'allsizes'
struct
one of a pre-defined list of available structures
args
argument list that corresponds to the structure struct
The draw function outputs a random object of size n in the class A defined by the specification spec, with uniform distribution among all objects of the same size.
In the case of structures, the draw function returns an object of size n, or an object chosen from all possible sizes, or an object of the default size for that structure, if the size was not specified.
Use the string 'allsizes' which is available only for predefined structures when the object is chosen from all possible sizes.
The count function returns the number of such objects.
To learn how to write a grammar specification, see combstruct[specification].
For a list of available structures, see combstruct[structures].
with⁡combstruct:
bin≔B=Union⁡Z,Prod⁡B,B:
draw⁡B,bin,labeled,size=7
Prod⁡Z1,Prod⁡Prod⁡Prod⁡Prod⁡Prod⁡Z4,Z3,Z2,Z6,Z7,Z5
draw⁡B,bin,size=7
Prod⁡Prod⁡Z,Prod⁡Z,Prod⁡Z,Prod⁡Prod⁡Z,Z,Z,Z
count⁡B,bin,unlabeled,size=7
132
draw⁡Combination⁡a,b,c
a,b
count⁡Permutation⁡a,b,c,size=2
6
See Also
combstruct[specification]
combstruct[structures]
Download Help Document