Here we describe some functions which allow to create several "random" objects. We make use of the function RandomList
.
‣ RandomNumericalSemigroup ( n, a[, b] ) | ( function ) |
Returns a ``random" numerical semigroup with no more than n generators in [1..a] (or in [a..b], if b is present).
gap> RandomNumericalSemigroup(3,9); <Numerical semigroup with 3 generators> gap> RandomNumericalSemigroup(3,9,55); <Numerical semigroup with 3 generators>
‣ RandomListForNS ( n, a, b ) | ( function ) |
Returns a set of length not greater than n of random integers in [a..b] whose GCD is 1. It is used to create "random" numerical semigroups.
gap> RandomListForNS(13,1,79); [ 22, 26, 29, 31, 34, 46, 53, 61, 62, 73, 76 ]
‣ RandomModularNumericalSemigroup ( k[, m] ) | ( function ) |
Returns a ``random" modular numerical semigroup S(a,b) with a le k (see 1.) and multiplicity at least m, were m is the second argument, which may not be present..
gap> RandomModularNumericalSemigroup(9); <Modular numerical semigroup satisfying 5x mod 6 <= x > gap> RandomModularNumericalSemigroup(10,25); <Modular numerical semigroup satisfying 4x mod 157 <= x >
‣ RandomProportionallyModularNumericalSemigroup ( k[, m] ) | ( function ) |
Returns a ``random" proportionally modular numerical semigroup S(a,b,c) with a le k (see 1.) and multiplicity at least m, were m is the second argument, which may not be present.
gap> RandomProportionallyModularNumericalSemigroup(9); <Proportionally modular numerical semigroup satisfying 2x mod 3 <= 2x > gap> RandomProportionallyModularNumericalSemigroup(10,25); <Proportionally modular numerical semigroup satisfying 6x mod 681 <= 2x >
‣ RandomListRepresentingSubAdditiveFunction ( m, a ) | ( function ) |
Produces a ``random" list representing a subadditive function (see 1.) which is periodic with period m (or less). When possible, the images are in [a..20*a]. (Otherwise, the list of possible images is enlarged.)
gap> RandomListRepresentingSubAdditiveFunction(7,9); [ 173, 114, 67, 0 ] gap> RepresentsPeriodicSubAdditiveFunction(last); true
‣ NumericalSemigroupWithRandomElementsAndFrobenius ( n, mult, frob ) | ( function ) |
Produces a "random" semigroup containing (at least) n elements greater than or equal to mult and less than frob, chosen at random. The semigroup returned has multiplicity chosen at random but no smaller than mult and having Frobenius number chosen at random but not greater than frob. Returns fail if frob is greater than mult.
gap> ns := NumericalSemigroupWithRandomElementsAndFrobenius(5,10,50); <Numerical semigroup with 17 generators> gap> MinimalGeneratingSystem(ns); [ 12, 13, 19, 27, 47 ] gap> SmallElements(ns); [ 0, 12, 13, 19, 24, 25, 26, 27, 31, 32, 36, 37, 38, 39, 40, 43 ] gap> ns2 := NumericalSemigroupWithRandomElementsAndFrobenius(5,10,9); #I The third argument must not be smaller than the second fail gap> ns3 := NumericalSemigroupWithRandomElementsAndFrobenius(5,10,10); <Proportionally modular numerical semigroup satisfying 20x mod 200 <= 10x > gap> MinimalGeneratingSystem(ns3); [ 10 .. 19 ] gap> SmallElements(ns3); [ 0, 10 ]
generated by GAPDoc2HTML