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 — Проверьте существование элементов набора
contains(set, s)
Этот метод перегружает функциональный contains для мультимножеств, т.е. можно использовать его в форме contains(set, s).
equal — Протестируйте на равенстве мультимножеств
equal(set1, set2)
Системная функция _equal используется в тесте.
expand — Расширьте мультимножество до последовательности его элементов
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 — Разделение мультимножества
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 — Сортировка мультимножеств
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