Теория множеств: Понятия, операции и диаграммы Эйлера-Венна
Теория множеств, созданная Георгом Кантором в конце XIX века, является языком и фундаментом всей современной математики. Множество — это одно из первоначальных, неопределяемых понятий математики. Интуитивно под множеством понимают совокупность, собрание, набор некоторых объектов, объединенных по какому-либо признаку. Объекты, составляющие множество, называются его элементами.
Способы задания множеств делятся на два основных типа: перечисление всех его элементов (для конечных множеств) и задание характеристического свойства, которым обладают все элементы данного множества и только они. Множество, не содержащее ни одного элемента, называется пустым множеством (обозначается Ø).
Если каждый элемент множества A является также элементом множества B, то множество A называется подмножеством множества B. Множество всех подмножеств данного множества называется булеаном.
Над множествами определены следующие базовые операции:
- Объединение (A ∪ B) — множество, содержащее все элементы, принадлежащие хотя бы одному из множеств A или B.
- Пересечение (A ∩ B) — множество, состоящее из элементов, которые одновременно принадлежат и множеству A, и множеству B.
- Разность (A B) — множество элементов, принадлежащих A, но не принадлежащих B.
- Симметрическая разность (A △ B) — множество элементов, принадлежащих либо A, либо B, но не принадлежащих их пересечению.
- Дополнение — разность между универсальным множеством (включающим вообще все рассматриваемые элементы) и данным множеством.
Для наглядной геометрической иллюстрации операций над множествами используются диаграммы Эйлера-Венна. На них универсальное множество изображается в виде прямоугольника, а рассматриваемые множества — в виде кругов или замкнутых кривых внутри прямоугольника. Заштриховывая различные области пересечения этих фигур, можно визуально доказывать равенства множеств и решать логические задачи.
Теория множеств глубоко интегрирована в базы данных. Язык SQL (реляционная алгебра) напрямую опирается на операции над множествами: операции JOIN, UNION, INTERSECT в точности соответствуют пересечению и объединению множеств. Кроме того, типы данных Set и операции над ними присутствуют практически во всех современных языках программирования.