С термином множество в математике и в языках программирования, при манипулировании со структурами данных связывается разный смысл.В математике множество это любая совокупность объектов, выбранная из универсального множества. Универсальным при этом считается множество, содержащее сразу все рассматриваемые элементы.Элементами множества в математике могут быть данные различных типов, число элементов не ограничено, одинаковых элементов нет.Множество определяется перечислением свих элементов как A={a1, а2, …, аn}, аi – элементы множества.
Если х элемент множества А, то записывают х Î А.
Возможно другое определение множества через характеристическое свойство своего элемента:
А={х| х – день недели}.
Если А подмножество В, то пишут А Í В, пустое множество обозначают А = Ø или А={ }.
Операции над множествами (математика)
Пусть А и В некоторые множества элементов из некоторого класса объектов U, тогда определены следующие операции.
1. Дополнение - унарная операция
A= { х| хÏА
} содержит все те элементы U, которые не являются элементами
множества А.
2. Объединение множеств А и В
АÈВ={ х| хÎА или хÎВ} содержит все элементы U, каждый из которых является либо элементом множества А, либо элементом множества В, либо одновременно элементом множества А и элементом множества В.
3. Пересечение множеств А и В
АÇВ={
х| х Î А и х Î В}
содержит все элементы U, каждый из которых является одновременно
элементом множества А и элементом множества В.
4. Вычитание множеств А и В
А-В={ х| х Î А, но х∉В} содержит все те элементы U, каждый из которых является элементом множества А, но не является элементом множества В.
5. Произведение множеств А и В называется такое множество, каждый элемент которого представляет собой совокупность двух объектов (пару), при этом один из объектов пары является элементом из А, а второй – элементом из В:
АхВ={ (а, b)| aÎА, но bÎВ}.
Любое подмножество множества АхВ есть отношение R, при этом множество А называется областью определения, а множество В – областью значений. Отношение R часто имеет смысл =, >, <, и т.д.
6. Функция (отношение, преобразование) f: A∩B или f: A→B есть множество пар элементов (а, b), таких, что aÎА, bÎВ и b=f(a).
В языках программирования , например в Паскале, предусмотрены структуры типа «множество» (множественные типы).
Множество – это структурированный тип данных, представляющий собой набор взаимосвязанных по какому-либо признаку или группе признаков неповторяющихся объектов, которые можно рассматривать как единое целое.Каждый объект в множестве называется элементом множества.Все элементы множества должны принадлежать одному из скалярных типов, кроме вещественного. Этот тип называется базовым типом множества. Базовый тип задается диапазоном или перечислением.Размер множества ограничен некоторым предельно допустимым количеством элементов, например, в Паскале это 256, значения элементов могут изменяться только в пределах от нуля до 255.Поэтому базовым типом множества могут быть byte, char и производные от них типы. Множество в памяти хранится как массив битов, в котором каждый бит указывает является ли элемент принадлежащим объявленному множеству или нет. Т.о. максимальное число элементов множества 256, а данные типа множество могут занимать не более 32-ух байт.Число байтов, выделяемых для данных типа множество, вычисляется по формуле:
ByteSize = (max div 8)-(min div 8) + 1,
где max и min - верхняя и нижняя границы базового типа данного множества.
Номер байта для конкретного элемента Е вычисляется по формуле:
ByteNumber = (E div 8)-(min div 8),
номер бита внутри этого байта по формуле:
BitNumber = E mod 8
Стандарт языка определяет операции над множествами, таковыми в Паскале являются:
1. объединение (+),
2. пересечение (*),
3. разность (-),
4. проверка принадлежности элемента множеству (in).
Предусмотрены также операции сравнения множеств =, <>, <=, >=, например, А<=В - операция проверки того, является ли А подмножеством В.
В языке Си структура типа «множество» не предусмотрена.