Множество – это понятие, которое рассматривается в большинстве точных наук, встречаясь не только в математике, но и в информатике. Является крайне важным компонентом, особенно при работе с несколькими значениями.
В данной статье будет рассказано о том, для чего на самом деле нужны множества. Предстоит познакомиться с их видами, а также ключевыми особенностями. Также придется рассмотреть ключевые операции и примеры применения в программировании. В качестве основы возьмем Pascal. Несмотря на то, что соответствующий язык разработки в 2022 году не пользуется особым спросом, он прекрасно объяснит «базу» выбранного направления. После этого удастся более подробно изучить множества и их элементы в других, более сложных языках программирования.
Определение
Множество – математическая модель. Является одним из ключевых понятий в соответствующей науке. Представляет собой набор, совокупность каких-либо (совершенно любых) объектов, называемых элементами этого самого множества. Два подобных компонента будут равными, если они содержат одинаковые элементы.
Множество – неупорядоченная совокупность уникальных значений хаотичного характера. Упорядоченное множество в программировании и иных науках носит название массива.
В качестве элементов множества могут выступать:
- символы;
- строки;
- числа.
Главное помнить, что перечисленные элементы должны быть константами. Это – значения, которые никогда не корректируются (не изменяются). В случае с программированием – остаются постоянными на протяжении всего цикла жизни приложения.
В математике есть отдельная дисциплина. Она носит название теории множеств. Полностью посвящена изучению соответствующего компонента. Классическое определение рассматриваемому математическому элементу дал математик-немец Георг Кантор. Он описал множество как «многое, мыслимое как единое целое».
Основные составляющие
Перед тем, как рассматривать разные множества в языках программирования, необходимо хорошенько изучить их за пределами разработки программного обеспечения. В противном случае высоки риски допущения ошибок в приложении.
Первое, на что нужно обратить внимание – это основные составляющие «неупорядоченных массивов». Здесь стоит запомнить следующее:
- Элементы – это объекты или элементы, которые составляют множество. В программировании – значения и переменные.
- В математике и иных науках сами множества обозначаются заглавными буквами. Обычно – латинскими.
- Элементы «неупорядоченных массивов» указываются прописными латинскими буквами (a, c, f,…). Возможно указание букв с индексами (a1, a2, a3,…).
- Существуют множества, которые не содержат ни одного элемента. Такие объекты называются пустыми. Пример – нечетные числа, которые делятся на 2.
Это – только начало. Работа с рассматриваемыми компонентами на самом деле не слишком трудная. Особенно если предварительно хорошенько ознакомиться с математической теорией.
Виды
Существуют совершенно разные виды множеств, особенно в разработке. Этот момент зависит от того, какой тип данных хранит в себе «неупорядоченный массив», а также от размера:
- Числовые. Его элементами будут являться только числа.
- Тестовые. Несут в себе элементы, состоящие из текстовых значений. В математике не встречается. Такой вариант актуален только для разработки.
- Конечные. Совокупности, обладающие минимальными и максимальными пределами. Наглядные пример – отрезки.
- Бесконечные. Множества, которые не имеют конца. Пример – числовые совокупности.
- Пустые. Те, что не содержат в себе никаких элементов.
Если два мно жества включают в себя одинаковые элементы, то одно из них – это подмножество другого. Когда совокупности включают в себя совершенно одинаковые элементы, они будут рассматриваться в качестве равных.
Выше – примеры того, как в математике обозначаются те или иные числовые множества. Далее более подробно рассмотрим первые три элемента.
Натуральные совокупности
Существуют разные виды множеств как в математике, так и в программировании. Работа даже в разработке программного обеспечения в основном происходит при помощи числовых значений и совокупностей. Поэтому соответствующему типу «неупорядоченных массивов» рекомендуется уделить больше времени.
Первый вариант – множества натуральных чисел. К ним относятся цифры, которые люди используют при счете. Начинаются с 1 и длятся до бесконечности.
Вопрос относительно ноля неоднозначен. Некоторые ученые по сей день говорят, что он относится к натуральным, а кто-то твердит об обратном.
Работа с такими множествами используется для исчисления порядка предметов, элементов или иных объектов. Обязательным условием является то, что каждое число в рассматриваемой совокупности должно быть больше предыдущего. В программировании такое множество является массивом.
Целые совокупности
А это – совокупность, которая включает в себя:
- ноль;
- положительные натуральные числа;
- отрицательные числа.
Это – «расширенная версия» множества натуральных совокупностей. Отсюда следует, что N является подмножеством Z.
Рациональные совокупности
Q – это множество, которое включает в себя целые и смешанные числа, а также дроби (десятичные и обычные). Любое рациональное число можно представить в виде дроби. У нее числитель – это разные целые, а знаменатели – натуральные. N и Z – это подмножества Q.
Как задавать в математике
Перед тем, как рассматривать операции со множествами, нужно выяснить, каким образом задавать их элементы. В программировании существуют различные варианты реализации поставленной задачи. Реализация соответствующих концепций напрямую зависит от выбранного языка разработки. Об этом чуть позже. Для начала рассмотрим несколько различных вариантов задания множеств в математике.
Перечисление всех элементов
Самый простой вариант. Задать множество можно, если просто перечислить все элементы, предусматриваемые заданной совокупностью. Их названия записываются в строчку через запятую. В математике подобная «цепочка» заключается в фигурные скобки. Запись является своеобразным аналогом одномерного массива в разработке, если все числа в совокупности упорядочены.
Выше можно увидеть пример того, как соответствующий вариант будет выглядеть на практике.
Через характеристическое свойство
Характеристическое свойство – свойство, которым обладает каждый элемент, принадлежащий множеству, и не обладает ни один элемент за его пределами.
При помощи формулировки такого «параметра» можно задать множество данных в математике. Пример – это совокупность, состоящая из натуральных чисел меньше 10. В Pascal такой прием можно назвать «задание множества по установленному правилу/формуле».
Несколько слов о подмножествах
Подмножество – это такое множество, все элементы которого включены в другую совокупность. Вторая обычно более крупная. Множество A является подмножеством B, если каждый элемент A является элементом множества B.
Здесь необходимо запомнить следующее:
- B – подмножество A, если все его элементы включены во вторую совокупность.
- Любое непустое подмножество B множества A, которое не совпадает с A – это собственное подмножество.
- Для множества A пустое множество и сама совокупность A – это несобственные подмножества A.
- Множество, включающее в свой состав все рассматриваемые множества – универсальное. Обозначается в математике как U.
- Для каждого множества, состоящего из n элементов, допускается образование 2n подмножеств.
- Любую рассматриваемую совокупность можно изобразить графически. Для этого нужно ее элементы представить в виде точек в пределах заданного контура.
- Универсальное множество изображается в виде прямоугольника. Остальные – кругами.
Для того, чтобы изобразить множества и операции над ними, обычно используются так называемые диаграммы Венна. Они будут приведены ниже. Нужны не только для обозначения «упорядоченных массивов информации» на бумаге, но и помогают найти результат выполнения тех или иных операций.
Отношения
Иногда в математических задачах необходимо найти отношение между несколькими «неупорядоченными массивами». Для этого нужны как графические интерпретации (они помогают быстрее и лучше разобраться в выбранном направлении), так и некоторые теоретические данные.
Здесь рекомендуется запомнить следующие особенности:
- Если у двух множеств нет общих элементов – они находятся в отношении непересечения.
- Когда общие элементы есть – множества находятся в отношении пересечения.
- Если существует элемент (хотя бы один), который принадлежит исключительно множеству A, а также отдельный элемент, относящийся только к B и такой компонент, который относится к обоим «неупорядоченным массивам» — это ситуация, при которой A и B находятся в «обобщенном» положении пересечения.
- Отношение включения – когда все элементы одного множества включены в полной мере в другое.
- Равенство – если каждый элемент из A будет выступать элементом B. В данном случае необходимо действие обратного утверждения: когда также компоненты B включены в A.
Выше – пример того, как грамотно определять отношения между двумя множествами. Это схематическое представление является универсальным.
Особенности работы с Python
Перед тем как выполнять различные операции с имеющимися множествами, стоит изучить много информации по Python. Возможные манипуляции с «неупорядоченными массивами» будут рассматриваться не в теории и математике, а непосредственно на программном коде. Это поможет лучше разобраться в выбранном направлении.
В Питоне множество – это или самостоятельные элементы (менее чем из двух составляющих), а также последовательности (цепочки). Все составляющие такой совокупности будут неупорядоченными.
Задание
Для манипуляций с множеством сначала требуется создать соответствующий элемент программного кода. Его элементы указываются в фигурных скобках. Исключением послужит пустое множество. Оно будет устанавливаться в коде за счет функции set.
В set можно передать в качестве параметра:
- список;
- кортеж;
- строку.
При обработке кода происходит возврат множества, составленного из элементов соответствующего объекта.
Каждый элемент множества может быть включен в него единожды. Повторения в Python возможны, но в единичных ситуациях. Чаще всего такая ситуация рассматривается системой как ошибка или вовсе игнорируется.
Работа с элементами
Рассматривая операции со множествами, нужно сначала научиться выполнять различные манипуляции над элементами «неупорядоченных массивов» в Python:
- Для того чтобы найти количество элементов в заданной совокупности, используется len.
- Перебор элементов производится при помощи цикла for. Переборка проводится в хаотичном порядке.
- Для проверки элемента на принадлежность к совокупности нужно использовать in. Она вернет значение bool. Для соответствующей операции можно использовать not in.
- Для добавления нового элемента используют различные методы. Один из них – через функцию add.
- Для удаления в Python используются команды discard и remove.
- Set – команда, которая позволяет устанавливать множество информации в программном коде.
- Pop – метод, который удалит один случайный элемент. После этого произойдет возврат его значения. Также в Python будет сгенерировано исключение KeyError.
Для того, чтобы создать список, в Питоне нужно использовать команду list. Эта информация – базовые знания, без которых не получится полноценно рассмотреть манипуляции с множествами.
Способы записи данных
Перед тем, как найти элементы множества и выполнить с ними те или иные действия, нужно задать соответствующие компоненты. В Python такие действия осуществляются несколькими способами:
- вручную;
- чтением из текстовых документов;
- при помощи генератора случайных чисел;
- по формуле или условиям.
Вторая концепция встречается крайне редко, поэтому пользоваться ей приходится в исключительных ситуациях. Для новичков такой прием не имеет особой значимости.
Задание вручную
Первый и самый простой вариант. Он напоминает задание элементов множества в математике. При запуске приложения пользователь сам будет вводить компоненты совокупности. Для этого используется клавиатура.
Перед тем как рассматривать соответствующий процесс, нужно обозначить для дальнейших примеров то или иное множество. Пусть оно состоит из пяти элементов.
Выше – образец кода, который поможет задать элементы множества непосредственно через клавиатуру.
Генератор случайных чисел
А вот – прием, который позволяет заполнять множество случайными числами:
Такая концепция помогает удостовериться в работоспособности имеющегося кода или его фрагмента. Интервал, в пределах которого нужно задавать числа, устанавливается пользователем самостоятельно.
По формуле
Это – пример кода, помогающего задать элементы множества по определенным правилам:
Такой вариант используется при решении огромного количества задач. Он имеет аналогию в математике.
Операции
Теперь можно рассмотреть основные операции со множествами. Их в Python можно условно разделить на математические и «специальные». Основной упор будет сделан на первую категорию. Она является более распространенной.
Объединение
Базовая операция, которая выступает в качестве элементарной. Результатом будет массив, который включает в себя все элементы заданных «неупорядоченных цепочек данных».
Объединение можно провести через:
- оператор | («вертикальная черта»);
- метод union().
Это – графическая интерпретация соответствующей операции при помощи диаграммы Венна.
Выше можно увидеть форму представления объединения в Python обоими методами.
Пересечение
Еще одна базовая операция. Она активно изучается в школьной программе на уроках математики и алгебры. Результатом вычислений станет множество, которое включает в себя элементы, входящие в состав обоих «неупорядоченных массивов». Главное, чтобы эти компоненты были в них одновременно.
Такой код можно найти, если изучать программирование на Python.
Для того, чтобы воспользоваться соответствующей операцией, можно задействовать оператор & или метод intersection.
Разность
Разность множеств – это формирование нового «неупорядоченного массива». В нем будут содержаться лишь элементы, которые включены только к первому множеству.
Если осуществить поиск данных в Python по реализации данной операции, можно увидеть, что для этого используется или метод difference, или оператор -.
Также есть симметрическая разность. Результатом станет множество, в котором содержатся элементы из обоих массив. Исключены те, что есть сразу в обоих «неупорядоченных массивов». Система находит так называемое пересечение и устраняет его из итогового результата.
В Python для реализации этой манипуляции используют или метод symmetric difference, или ^.
Так выглядит непосредственная реализация на выбранном языке программирования.
Особые методы
Кроме изученных ранее операций с «неупорядоченными массивами» можно выполнять иные манипуляции. Они носят название «специальных». Сюда относят следующие варианты:
- Определение, есть ли у двух set-ов общие элементы. Для этого используется Isdisjoint().
- Issubset(). Данный метод используется для проверки на подмножество. Оператор < тут будет определять строгость подмножества. Он ведет себя подобно <=.
- Issupset(). Аналог предыдущего варианта, но с оператором >.
- Update(). Используется для того, чтобы изменить исходное множество по объединению.
- Interseption_update(). Отвечает за пересечение.
- Difference_update. Позволяет корректировать разность множеств.
- Symmetric_difference_update(). Поддерживает изменение симметрической разности.
Это – таблица, которая поможет быстрее и лучше разобраться с множествами и возможными действиями с ними. Данная информация актуальна как для математики, так и для программирования.
Как вывести
После того как то или иное действие с множеством проведено, его потребуется вывести на экран. Это еще одна манипуляция, о которой должен знать каждый разработчик Python.
Для реализации поставленной задачи необходимо использовать цикл. Лучше всего для этого подходит for.
Хотите освоить современную IT-специальность? Огромный выбор курсов по востребованным IT-направлениям есть в Otus!
Также вам может быть интересен следующий курс: