Dom
:: Multiset
Синтаксис
Dom::Multiset(<s1, s2, …
>)
Описание
Dom::Multiset
является областью мультимножеств, т.е. устанавливает возможно с несколькими идентичными элементами.
Мультимножество представлено набором списков формы [s, m], где s является элементом мультимножества и m его кратность.
Мультимножества могут быть возвращены системным решателем solve
. Например, вход solve(x^3 - 4*x^2 + 5*x - 2, x, Multiple)
дает все корни полиномиального x 3 - 4 x2 + 5 x - 2 в форме мультимножества {[1, 2], [2, 1]}
.
Операции стандартного набора, такие как объединение, пересечение и вычитание наборов были расширены, чтобы иметь дело с мультимножествами.
Эти операции могут обработать различные типы наборов, такие как наборы типа DOM_SET
и мультимножества. Можно, например, вычислить объединение мультимножества {[a, 2], [b, 1]}
и набор {c}
, который приводит к мультимножеству {[a, 2], [b, 1], [c, 1]}
.
Элементы мультимножества сортируются в то время, где мультимножество создается. sort
системной функции используется в порядке гарантировать, что точно одно представление существует для мультимножества, независимого от последовательности, в которой появляются аргументы.
Dom::Multiset(s1, s2, ...)
создает мультимножество, состоящее из элементов s1, s2, ...
Несколько идентичных элементов в s1, s2
... собраны. Например, вызов Dom::Multiset(a, b, a, c)
создает мультимножество с элементами a, b, c
. Элемент a
имеет кратность два, другие два элемента b
и c
оба, имеет кратность один.
Примеры
Пример 1
Мультимножество {a, a, b} состоят из двух различных элементов a и b, где a имеет кратность два, и b имеет кратность один:
Мы создаем другое мультимножество:
Операции стандартного набора, такие как дизъюнктное объединение, пересечение или вычитание реализованы для мультимножеств и могут быть выполнены с помощью операторов стандартного набора MuPAD®:
Пример 2
Некоторые системные функции были перегружены для мультимножеств, таких как expand
, normal
или split
.
Если мы применяем expand
к мультимножеству, например, мы получаем последовательность выражения всех элементов мультимножества (появляющийся в соответствии к их кратности):
Если вы хотите преобразовать мультимножество в обычный набор доменного типа DOM_SET
, используйте coerce
:
Примечание: системная функция coerce
использует методы "convert"
и "convert_to"
доменного Dom::Multiset
.
Сравните последний результат с возвращаемым значением функционального expr
, когда это будет применено для мультимножеств:
Результатом является набор доменного типа DOM_SET
, состоя из списков доменного типа DOM_LIST
с двумя записями, элементом мультимножества и соответствующей кратностью того элемента.
Записи
isfinite | TRUE , потому что Dom::Multiset представляет конечные множества.
|
"inhomog_intersect" | таблица формы T = Proc(multiset, setoftypeT) . Эта запись используется внутренне реализацией, и таким образом не должна быть затронута. |
"inhomog_union" | таблица формы T = Proc(multiset, setoftypeT) . Эта запись используется внутренне реализацией, и таким образом не должна быть затронута. |
Методы
развернуть все
Математические методы
normal
— Нормализация мультимножеств
normal(set
)
Этот метод перегружает функциональный normal
для мультимножеств, т.е. можно использовать его в форме normal(set)
.
powerset
— Степенное множество мультимножества
powerset(set
)
Степенное множество set
возвращено как набор мультимножеств.
random
— Случайная генерация мультимножества
random()
Созданное число элементов, включая их кратность, ограничивается 20.
Методы доступа
_index
— Индексация мультимножества
_index(set
, i
)
См. метод "op"
.
Этот метод перегружает функциональный _index
для мультимножеств, т.е. можно использовать его в форме set[i]
, или в функциональном обозначении: _index(set, i)
.
содержит
Проверьте существование элементов набора
contains(set
, s
)
Этот метод перегружает функциональный contains
для мультимножеств, т.е. можно использовать его в форме contains(set, s)
.
equal
— Протестируйте на равенстве мультимножеств
equal(set1
, set2
)
Системная функция _equal
используется для теста.
расширение
Расширьте мультимножество до последовательности его элементов
expand(set
)
Этот метод перегружает функциональный expand
для мультимножеств, т.е. можно использовать его в форме expand(set)
.
getElement
— Извлеките один элемент от мультимножества
getElement(set
)
Обратите внимание на то, что элементы мультимножества сортируются с использованием системной функции sort
, и таким образом порядок мультимножества зависит от критериев сортировки, заданных этой функцией.
Этот метод перегружает функциональный solvelib::getElement
, т.е. можно использовать его в форме solvelib::getElement(set)
.
has
— Проверяет существование (под-) выражения
has(set
, expr
)
Чтобы проверять, содержится ли expr
как элемент set
и не как подвыражение элементов set
, функциональный contains
должен использоваться.
Этот метод перегружает функциональный has
для мультимножеств, т.е. можно использовать его в форме has(set, expr)
.
map
— Примените функцию к элементам мультимножества
map(set
, func
,
<expr, …
>)
Это перегружает функциональный map
для мультимножеств, т.е. можно использовать его в форме map(set, func, ...)
.
multiplicity
— Кратность элемента
multiplicity(set
, s
)
Элементы, которые не содержатся в set
, имеют нуль кратности.
card
— Число элементов в мультимножестве
card(set
)
Этот метод перегружает функциональный card
.
nops
— Количество различных элементов в мультимножестве
nops(set
)
Этот метод перегружает функциональный nops
для мультимножеств, т.е. можно использовать его в форме nops(set)
.
op
Элемент мультимножества
op(set
)
op(set
, i
)
Возвращает i-th элемент s мультимножества set
и его кратность m в форме списка [s, m].
См. также метод "_index"
.
Обратите внимание на то, что элементы мультимножества сортируются с использованием системной функции sort
, и таким образом порядок мультимножества зависит от критериев сортировки, заданных этой функцией.
Этот метод перегружает функциональный op
для мультимножеств, т.е. можно использовать его в форме op(s, i)
.
select
— Выбор элементов мультимножества
select(set
, func
,
<expr, …
>)
Этот метод перегружает функциональный select
для мультимножеств, т.е. можно использовать его в форме select(set, func, ...)
. Смотрите select
для деталей.
разделение
Разделение мультимножества
split(set
, func
,
<expr, …
>)
Этот метод перегружает функциональный split
для мультимножеств, т.е. можно использовать его в форме split(set, func, ...)
. Смотрите split
для деталей.
subs
— Замена элементов в мультимножествах
subs(set, …
)
Этот метод перегружает функциональный subs
для мультимножеств, т.е. можно использовать его в форме subs(set, ...)
.
Методы преобразования
\convert
Преобразование в мультимножество
convert(x
)
FAIL
возвращен, если преобразование перестало работать.
В настоящее время только наборы типа DOM_SET
могут быть преобразованы в мультимножества.
convert_to
— Преобразование мультимножества
convert_to(set
, T
)
FAIL
возвращен, если преобразование перестало работать.
В настоящее время T
может или быть DOM_SET
, чтобы преобразовать мультимножество set
в набор (освобождающий кратность и порядок элементов set
), или DOM_EXPR
или "_exprseq"
, чтобы преобразовать set
в последовательность выражения (см. метод "expand"
для деталей).
См. также метод "expr"
.
expr)
Преобразование мультимножества в объект области ядра
expr(set
)
Этот метод перегружает функциональный expr
для мультимножеств, т.е. можно использовать его в форме expr(set)
.
вид
Сортировка мультимножеств
sort(set
)
Этот метод перегружает функциональный sort
для мультимножеств, т.е. можно использовать его в форме sort(set)
.
Технические методы
bin_intersect
— Пересечение двух мультимножеств
bin_intersect(set1
, set2
)
Этот метод называется от стандартных программ, заданных в категории Cat::Set
, который реализует среди других перегрузку функционального intersect
для мультимножеств. Можно пересечь два мультимножества непосредственно set1 intersect set2
, или в функциональном обозначении _intersect(set1, set2)
.
bin_minus
— Вычитание двух мультимножеств
bin_minus(set1
, set2
)
Этот метод называется от стандартных программ, заданных в категории Cat::Set
, который реализует среди других перегрузку функционального minus
для мультимножеств. Можно вычесть два мультимножества непосредственно set1 minus set2
, или в функциональном обозначении _minus(set1, set2)
.
homog_union
— Объединение мультимножеств
homog_union(set, …
)
Этот метод называется от стандартных программ, заданных в категории Cat::Set
, который реализует среди других перегрузку функционального union
для мультимножеств. Можно вычислить объединение двух мультимножеств непосредственно set1 union set2
, или в функциональном обозначении _union(set1, set2)
.
nested_union
— Объединение вложенных наборов
nested_union(setofsets
)
Этот метод называется от стандартных программ, заданных в категории Cat::Set
, который реализует среди других перегрузку функционального union
для мультимножеств и наборов. Можно вычислить объединение мультимножеств и наборов непосредственно set1 union set2
, или в функциональном обозначении _union(set1, set2)
.
Смотрите также
Области MuPAD