Пакет для работы со случайными объектами RandomTools служит для расширения базовых возможностей системы Maple 7 (для большинства пользователей и так вполне достаточных) в части генерации различных случайных объектов, таких как числа различных форматов, векторов, матриц, строковых символов, таблиц и т. д. Они образно названы Flavor (в буквальном переводе «букет (вина)»), что подчеркивает возможную сложность структуры создаваемых объектов.
Пакет представлен небольшим числом основных функций:
> with(RandomTools);
[AddFlavor, Generate, GetFlavor, GetFlavors, HasFlavor, RemoveFlavor]
Однако функции AddFlavor и Generate могут использоваться с внушительным набором типов случайных объектов:
Choose |
complex |
exprseq |
float |
identical |
Integer |
list |
listlist |
negative |
negint |
Nonnegative |
nonnegint |
nonposint |
nonpositive |
nonzero |
Nonzeroint |
polynom |
posint |
positive |
rational |
Set |
structured |
truefalse |
Действие большинства из них вполне очевидно из названий. Основной функцией является функция генерации случайных объектов Generate(expr). Если тип объекта не задан (например, функцией AddFlavor), то использование функции Generate будет порождать сообщение об ошибке. Примеры применения функций представлены ниже:
Функция GetFlavor(flvr) представляй случайный объект (или объекты) в форме процедуры:
> AddF1avor(a = rand(1..20)):
Generate(a):
15
> GetFlavor(a);
procO localt; global_seed;
_seed := irem(ax_seed,p);
t :=_seed;
toconcats do_seed:=irem(ax_seed,p);
t := sxt + _seed end do ;
irem(t, divisor) +offset endproc
> GetFlavor(integer);
module () localDefaults;
exportMain;
end module
Другая функция GetFlavors () возвращает все типы случайных объектов:
> GetFlavorsO;
a, alphachar, choose, complex, exprseq, float, integer, list, listlist, negative, negint, nonnegative, nonnegint, nonposint, nonpositive, nonzero, nonzeroint, polynom, posint, positive, rational, set, string, truefalse
![]() |
![]() |
![]() |