<Appendix><Heading>Random functions</Heading>

Here we describe some functions which allow to create
several "random" objects.

<Section><Heading>Random functions</Heading>

<ManSection>
            <Func Name="RandomNumericalSemigroup" Arg="n,m"></Func>
            <Description>
                Returns a ``random" numerical semigroup with no more than <A>n</A> generators in [1..<A>m</A>].
                <Example><![CDATA[
gap> RandomNumericalSemigroup(3,9);
<Numerical semigroup with 3 generators>
]]></Example>
            </Description>
        </ManSection>


        <ManSection>
            <Func Name="RandomListForNS" Arg="n,m"></Func>
            <Description>
Returns a set of length not greater than <A>n</A> of random integers in <A>[1..m]</A>
whose GCD is 1.
It is used to create "random" numerical semigroups.
                <Example><![CDATA[
gap> RandomListForNS(13,79);
[ 22, 26, 29, 31, 34, 46, 53, 61, 62, 73, 76 ]
]]></Example>
            </Description>
        </ManSection>



        <ManSection>
            <Func Name="RandomModularNumericalSemigroup" Arg="k"></Func>
            <Description>
                Returns a ``random" modular numerical semigroup.
                <Example><![CDATA[
gap> RandomModularNumericalSemigroup(9);
<Modular numerical semigroup satisfying 5x mod 6 <= x >
]]></Example>
            </Description>
        </ManSection>


        <ManSection>
            <Func Name="RandomProportionallyModularNumericalSemigroup" Arg="k"></Func>
            <Description>
                Returns a ``random" proportionally modular numerical semigroup
(see <Ref Label="llab1" />).
                <Example><![CDATA[
gap> RandomProportionallyModularNumericalSemigroup(9);
<Proportionally modular numerical semigroup satisfying 2x mod 3 <= 2x >
]]></Example>
            </Description>
        </ManSection>

        <ManSection>
            <Func Name="RandomListRepresentingSubAdditiveFunction" Arg="m, a"></Func>
            <Description>
                Produces a ``random" list representing a subadditive function (see <Ref Label="llab2" />) which is periodic
with period <A>m</A> (or less). When possible, the images are in <A>[a..20*a]</A>.
(Otherwise, the list of possible images is enlarged.)


                <Example><![CDATA[
gap> RandomListRepresentingSubAdditiveFunction(7,9);
[ 173, 114, 67, 0 ]
gap> RepresentsPeriodicSubAdditiveFunction(last);
true
]]></Example>
            </Description>
        </ManSection>

</Section>

</Appendix>
