Множество – это понятие, которое рассматривается в большинстве точных наук, встречаясь не только в математике, но и в информатике. Является крайне важным компонентом, особенно при работе с несколькими значениями.
В данной статье будет рассказано о том, для чего на самом деле нужны множества. Предстоит познакомиться с их видами, а также ключевыми особенностями. Также придется рассмотреть ключевые операции и примеры применения в программировании. В качестве основы возьмем 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!
Также вам может быть интересен следующий курс:
МАТЕМАТИКА
<!DOCTYPE html>
<html dir="ltr" lang="ru-RU">
<head>
<meta charset="UTF-8" />
<meta http-equiv="x-ua-compatible" content="ie=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="profile" href="http://gmpg.org/xfn/11" />
<title>Множества: определение, значимость, применение в программировании OTUS</title>
<!-- All in One SEO 4.5.2.1 - aioseo.com -->
<meta name="description" content="Множество – это понятие, которое рассматривается в большинстве точных наук, встречаясь не только в математике, но и в информатике. Является крайне важным компонентом, особенно при работе с несколькими значениями. В данной статье будет рассказано о том, для чего на самом деле нужны множества. Предстоит познакомиться с их видами, а также ключевыми особенностями. Также придется рассмотреть" />
<meta name="robots" content="max-image-preview:large" />
<link rel="canonical" href="https://otus.ru/journal/mnozhestva-opredelenie-znachimost-primenenie-v-programmirovanii/" />
<meta name="generator" content="All in One SEO (AIOSEO) 4.5.2.1" />
<script type="application/ld+json" class="aioseo-schema">
{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/otus.ru\/journal\/mnozhestva-opredelenie-znachimost-primenenie-v-programmirovanii\/#article","name":"\u041c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430: \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435, \u0437\u043d\u0430\u0447\u0438\u043c\u043e\u0441\u0442\u044c, \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 OTUS","headline":"\u041c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430: \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435, \u0437\u043d\u0430\u0447\u0438\u043c\u043e\u0441\u0442\u044c, \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438","author":{"@id":"https:\/\/otus.ru\/journal\/author\/a-pavlenko\/#author"},"publisher":{"@id":"https:\/\/otus.ru\/journal\/#organization"},"image":{"@type":"ImageObject","url":"https:\/\/otus.ru\/journal\/wp-content\/uploads\/2022\/11\/oj-1080x720-37-1.png","width":1080,"height":720},"datePublished":"2022-11-28T17:35:06+00:00","dateModified":"2022-11-28T17:35:07+00:00","inLanguage":"ru-RU","mainEntityOfPage":{"@id":"https:\/\/otus.ru\/journal\/mnozhestva-opredelenie-znachimost-primenenie-v-programmirovanii\/#webpage"},"isPartOf":{"@id":"https:\/\/otus.ru\/journal\/mnozhestva-opredelenie-znachimost-primenenie-v-programmirovanii\/#webpage"},"articleSection":"\u041f\u043e\u043b\u0435\u0437\u043d\u043e\u0435, \u041c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0430, \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435"},{"@type":"BreadcrumbList","@id":"https:\/\/otus.ru\/journal\/mnozhestva-opredelenie-znachimost-primenenie-v-programmirovanii\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/otus.ru\/journal\/#listItem","position":1,"name":"\u0413\u043b\u0430\u0432\u043d\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430","item":"https:\/\/otus.ru\/journal\/","nextItem":"https:\/\/otus.ru\/journal\/mnozhestva-opredelenie-znachimost-primenenie-v-programmirovanii\/#listItem"},{"@type":"ListItem","@id":"https:\/\/otus.ru\/journal\/mnozhestva-opredelenie-znachimost-primenenie-v-programmirovanii\/#listItem","position":2,"name":"\u041c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430: \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435, \u0437\u043d\u0430\u0447\u0438\u043c\u043e\u0441\u0442\u044c, \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438","previousItem":"https:\/\/otus.ru\/journal\/#listItem"}]},{"@type":"Organization","@id":"https:\/\/otus.ru\/journal\/#organization","name":"\u041e\u0442\u0443\u0441 \u043e\u043d\u043b\u0430\u0439\u043d-\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435","url":"https:\/\/otus.ru\/journal\/","sameAs":["https:\/\/www.youtube.com\/channel\/UCetgtvy93o3i3CvyGXKFU3g"],"contactPoint":{"@type":"ContactPoint","telephone":"+74999389202","contactType":"Customer Support"}},{"@type":"Person","@id":"https:\/\/otus.ru\/journal\/author\/a-pavlenko\/#author","url":"https:\/\/otus.ru\/journal\/author\/a-pavlenko\/","name":"A. Pavlenko","image":{"@type":"ImageObject","@id":"https:\/\/otus.ru\/journal\/mnozhestva-opredelenie-znachimost-primenenie-v-programmirovanii\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/d4c499a104d7c2522fa41f89e6819499?s=96&d=mm&r=g","width":96,"height":96,"caption":"A. Pavlenko"}},{"@type":"WebPage","@id":"https:\/\/otus.ru\/journal\/mnozhestva-opredelenie-znachimost-primenenie-v-programmirovanii\/#webpage","url":"https:\/\/otus.ru\/journal\/mnozhestva-opredelenie-znachimost-primenenie-v-programmirovanii\/","name":"\u041c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430: \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435, \u0437\u043d\u0430\u0447\u0438\u043c\u043e\u0441\u0442\u044c, \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 OTUS","description":"\u041c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u2013 \u044d\u0442\u043e \u043f\u043e\u043d\u044f\u0442\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0435 \u0442\u043e\u0447\u043d\u044b\u0445 \u043d\u0430\u0443\u043a, \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u044f\u0441\u044c \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0435, \u043d\u043e \u0438 \u0432 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0442\u0438\u043a\u0435. \u042f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u0440\u0430\u0439\u043d\u0435 \u0432\u0430\u0436\u043d\u044b\u043c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u043c, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438. \u0412 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u043d\u043e \u043e \u0442\u043e\u043c, \u0434\u043b\u044f \u0447\u0435\u0433\u043e \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043d\u0443\u0436\u043d\u044b \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430. \u041f\u0440\u0435\u0434\u0441\u0442\u043e\u0438\u0442 \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u0438\u0445 \u0432\u0438\u0434\u0430\u043c\u0438, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u043c\u0438 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044f\u043c\u0438. \u0422\u0430\u043a\u0436\u0435 \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c","inLanguage":"ru-RU","isPartOf":{"@id":"https:\/\/otus.ru\/journal\/#website"},"breadcrumb":{"@id":"https:\/\/otus.ru\/journal\/mnozhestva-opredelenie-znachimost-primenenie-v-programmirovanii\/#breadcrumblist"},"author":{"@id":"https:\/\/otus.ru\/journal\/author\/a-pavlenko\/#author"},"creator":{"@id":"https:\/\/otus.ru\/journal\/author\/a-pavlenko\/#author"},"image":{"@type":"ImageObject","url":"https:\/\/otus.ru\/journal\/wp-content\/uploads\/2022\/11\/oj-1080x720-37-1.png","@id":"https:\/\/otus.ru\/journal\/mnozhestva-opredelenie-znachimost-primenenie-v-programmirovanii\/#mainImage","width":1080,"height":720},"primaryImageOfPage":{"@id":"https:\/\/otus.ru\/journal\/mnozhestva-opredelenie-znachimost-primenenie-v-programmirovanii\/#mainImage"},"datePublished":"2022-11-28T17:35:06+00:00","dateModified":"2022-11-28T17:35:07+00:00"},{"@type":"WebSite","@id":"https:\/\/otus.ru\/journal\/#website","url":"https:\/\/otus.ru\/journal\/","name":"OTUS JOURNAL","description":"Blog about IT","inLanguage":"ru-RU","publisher":{"@id":"https:\/\/otus.ru\/journal\/#organization"}}]}
</script>
<!-- All in One SEO -->
<link rel='dns-prefetch' href='//otus.ru' />
<link rel='dns-prefetch' href='//fonts.googleapis.com' />
<link rel='stylesheet' id='wp-block-library-css' href='https://otus.ru/journal/wp-includes/css/dist/block-library/style.min.css?ver=6.4.7' type='text/css' media='all' />
<style id='classic-theme-styles-inline-css' type='text/css'>
/*! This file is auto-generated */
.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none}
</style>
<style id='global-styles-inline-css' type='text/css'>
body{--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flow > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}body .is-layout-flow > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}body .is-layout-flow > .aligncenter{margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}body .is-layout-constrained > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}body .is-layout-constrained > .aligncenter{margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)){max-width: var(--wp--style--global--content-size);margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > .alignwide{max-width: var(--wp--style--global--wide-size);}body .is-layout-flex{display: flex;}body .is-layout-flex{flex-wrap: wrap;align-items: center;}body .is-layout-flex > *{margin: 0;}body .is-layout-grid{display: grid;}body .is-layout-grid > *{margin: 0;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}
.wp-block-navigation a:where(:not(.wp-element-button)){color: inherit;}
:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}
:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}
.wp-block-pullquote{font-size: 1.5em;line-height: 1.6;}
</style>
<link rel='stylesheet' id='wbcr-comments-plus-url-span-css' href='https://otus.ru/journal/wp-content/plugins/clearfy/components/comments-plus/assets/css/url-span.css?ver=2.2.0' type='text/css' media='all' />
<link rel='stylesheet' id='wpel-style-css' href='https://otus.ru/journal/wp-content/plugins/wp-external-links/public/css/wpel.css?ver=2.59' type='text/css' media='all' />
<link rel='stylesheet' id='ez-toc-css' href='https://otus.ru/journal/wp-content/plugins/easy-table-of-contents/assets/css/screen.min.css?ver=2.0.61' type='text/css' media='all' />
<style id='ez-toc-inline-css' type='text/css'>
div#ez-toc-container .ez-toc-title {font-size: 120%;}div#ez-toc-container .ez-toc-title {font-weight: 500;}div#ez-toc-container ul li {font-size: 95%;}div#ez-toc-container nav ul ul li {font-size: 90%;}
.ez-toc-container-direction {direction: ltr;}.ez-toc-counter ul{counter-reset: item ;}.ez-toc-counter nav ul li a::before {content: counters(item, ".", decimal) ". ";display: inline-block;counter-increment: item;flex-grow: 0;flex-shrink: 0;margin-right: .2em; float: left; }.ez-toc-widget-direction {direction: ltr;}.ez-toc-widget-container ul{counter-reset: item ;}.ez-toc-widget-container nav ul li a::before {content: counters(item, ".", decimal) ". ";display: inline-block;counter-increment: item;flex-grow: 0;flex-shrink: 0;margin-right: .2em; float: left; }
</style>
<link rel='stylesheet' id='contentberg-fonts-css' href='https://fonts.googleapis.com/css?family=Roboto%3A400%2C500%2C700%7CPT+Serif%3A400%2C400i%2C600%7CIBM+Plex+Serif%3A500' type='text/css' media='all' />
<link rel='stylesheet' id='contentberg-core-css' href='https://otus.ru/journal/wp-content/themes/contentberg/style.css?ver=1.8.3' type='text/css' media='all' />
<link rel='stylesheet' id='contentberg-lightbox-css' href='https://otus.ru/journal/wp-content/themes/contentberg/css/lightbox.css?ver=1.8.3' type='text/css' media='all' />
<link rel='stylesheet' id='font-awesome-css' href='https://otus.ru/journal/wp-content/themes/contentberg/css/fontawesome/css/font-awesome.min.css?ver=1.8.3' type='text/css' media='all' />
<script type="text/javascript" id="breeze-prefetch-js-extra">
/* <![CDATA[ */
var breeze_prefetch = {"local_url":"https:\/\/otus.ru\/journal","ignore_remote_prefetch":"1","ignore_list":["\/wp-admin\/"]};
/* ]]> */
</script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/plugins/breeze/assets/js/js-front-end/breeze-prefetch-links.min.js" id="breeze-prefetch-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-includes/js/jquery/jquery.min.js" id="jquery-core-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-includes/js/jquery/jquery-migrate.min.js" id="jquery-migrate-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/lazysizes.js" id="lazysizes-js"></script>
<link rel="https://api.w.org/" href="https://otus.ru/journal/wp-json/" /><link rel="alternate" type="application/json" href="https://otus.ru/journal/wp-json/wp/v2/posts/5084" /><link rel='shortlink' href='https://otus.ru/journal/?p=5084' />
<link rel="alternate" type="application/json+oembed" href="https://otus.ru/journal/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fotus.ru%2Fjournal%2Fmnozhestva-opredelenie-znachimost-primenenie-v-programmirovanii%2F" />
<link rel="alternate" type="text/xml+oembed" href="https://otus.ru/journal/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fotus.ru%2Fjournal%2Fmnozhestva-opredelenie-znachimost-primenenie-v-programmirovanii%2F&format=xml" />
<script>var Sphere_Plugin = {"ajaxurl":"https:\/\/otus.ru\/journal\/wp-admin\/admin-ajax.php"};</script><link rel="icon" href="https://otus.ru/journal/wp-content/uploads/2020/11/cropped-OTUS_logo_OTUS-COMP-LOGO-WHITE-1-32x32.png" sizes="32x32" />
<link rel="icon" href="https://otus.ru/journal/wp-content/uploads/2020/11/cropped-OTUS_logo_OTUS-COMP-LOGO-WHITE-1-192x192.png" sizes="192x192" />
<link rel="apple-touch-icon" href="https://otus.ru/journal/wp-content/uploads/2020/11/cropped-OTUS_logo_OTUS-COMP-LOGO-WHITE-1-180x180.png" />
<meta name="msapplication-TileImage" content="https://otus.ru/journal/wp-content/uploads/2020/11/cropped-OTUS_logo_OTUS-COMP-LOGO-WHITE-1-270x270.png" />
<style type="text/css" id="wp-custom-css">
#menu-item-10406 .wpel-icon {
display: none;
}
#menu-item-10407 .wpel-icon {
display: none;
}
.otus-login-site a .wpel-icon {
display: none;
}
.menu-menju-navykov-container a .wpel-icon {
display: none;
}
.otus-login-site a
{
background: #ffd709;
border-radius: 12px;
color: #0f0f10;
font-size: 14px;
font-weight: 700;
line-height: 20px;
display: block;
text-align: center;
padding: 8px 25px;
}
.main-footer.dark {
background: linear-gradient(90deg, #a64fc5, #4f54e6);
border-color: transparent;
}
.main-footer.bold .copyright {
color: #fff;
}
.main-footer.bold .to-top i {
color: #fff;
}
.main-footer.bold .back-to-top {
color: #fff;
}
.nav__scroll {
overflow-x: auto;
-webkit-overflow-scrolling: touch;
}
.scrollable-menu .menu {
display: flex;
}
.nav__scroll
{
background: linear-gradient(90deg, #a64fc5, #4f54e6);
}
.scrollable-menu .menu .menu-item {
flex: 0 0 auto;
padding: 15px 15px;
}
.scrollable-menu .menu .menu-item a {
color: #fff;
}
.nav__scroll::-webkit-scrollbar{background-color:#fff;height:5px;}
.nav__scroll::-webkit-scrollbar-thumb{background-color:#dcdcdc;}
.nav__scroll::-webkit-scrollbar-track{-webkit-border-radius:0;border-radius:0;background-color:#fff;}/
body {
min-width: 320px;
}
.banner-click img {
margin: 0 auto;
display: block;
}
.banner-click {
cursor: pointer;
}
.banner-footer-area {
margin-bottom: 20px;
}
.banner-left-area {
margin-top: 40px;
} </style>
<!--Start VDZ Yandex Metrika Plugin-->
<!-- Yandex.Metrika counter --><script type="text/javascript" >(function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};m[i].l=1*new Date();k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)})(window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");ym(34531570, "init", {clickmap:true, trackLinks:true, accurateTrackBounce:true, webvisor:true, trackHash:true, ecommerce:"dataLayer"});</script>
<noscript><div><img src="https://mc.yandex.ru/watch/34531570" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
<!-- /Yandex.Metrika counter --><!--START ADD EVENTS FROM CF7--><script type='text/javascript'>document.addEventListener( 'wpcf7submit', function( event ) {
//event.detail.contactFormId;
if(ym){
//console.log(event.detail);
ym(34531570, 'reachGoal', 'VDZ_SEND_CONTACT_FORM_7');
ym(34531570, 'params', {
page_url: window.location.href,
status: event.detail.status,
locale: event.detail.contactFormLocale,
form_id: event.detail.contactFormId,
});
}
}, false );
</script><!--END ADD EVENTS FROM CF7-->
<!--End VDZ Yandex Metrika Plugin-->
</head>
<body class="post-template-default single single-post postid-5084 single-format-standard right-sidebar lazy-normal has-lb">
<div class="main-wrap">
<header id="main-head" class="main-head head-nav-below has-search-modal simple simple-boxed">
<div class="inner inner-head" data-sticky-bar="0">
<div class="wrap cf wrap-head">
<div class="left-contain">
<span class="mobile-nav"><i class="fa fa-bars"></i></span>
<div class="title">
<a href="https://otus.ru/journal/" title="OTUS JOURNAL" rel="home" data-wpel-link="internal">
<span class="text-logo"><img src="/journal/wp-content/themes/contentberg/img/logo_site.svg" alt="OTUS JOURNAL"></span>
</a>
</div>
</div>
<div class="navigation-wrap inline">
<nav class="navigation inline simple light" data-sticky-bar="0">
<div class="menu-rubriki-container"><ul id="menu-rubriki" class="menu"><li id="menu-item-109" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-cat-1 menu-item-109"><a href="https://otus.ru/journal/category/pro-it/" data-wpel-link="internal"><span>Про IT</span></a></li>
<li id="menu-item-113" class="menu-item menu-item-type-taxonomy menu-item-object-category current-post-ancestor current-menu-parent current-post-parent menu-cat-4 menu-item-113"><a href="https://otus.ru/journal/category/polza/" data-wpel-link="internal"><span>Полезное</span></a></li>
<li id="menu-item-114" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-cat-3 menu-item-114"><a href="https://otus.ru/journal/category/lifestyle/" data-wpel-link="internal"><span>Лайфстайл</span></a></li>
<li id="menu-item-10406" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10406"><a href="https://otus.ru/catalog/courses" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right"><span>Обучение</span><span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10407" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10407"><a href="https://otus.ru/about" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right"><span>Информация</span><span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
</ul></div> </nav>
</div>
<div class="actions">
<div class="otus-login-site">
<a href="https://otus.ru/login/" target="_blank" data-wpel-link="external" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Войти<span class="wpel-icon wpel-image wpel-icon-6"></span></a>
</div>
<a href="#" title="Search" class="search-link"><i class="fa fa-search"></i></a>
</div>
</div>
</div>
</header> <!-- .main-head -->
<div class="nav nav_disable nav_colored nav_transparent course-categories__nav nav__scroll ">
<div class="container wrap">
<div class="links inline simple light scrollable-menu">
<div class="menu-menju-navykov-container"><ul id="menu-menju-navykov" class="menu"><li id="menu-item-10413" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10413"><a href="https://otus.ru/categories/programming/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Программирование<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10414" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10414"><a href="https://otus.ru/categories/architecture/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Архитектура<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10415" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10415"><a href="https://otus.ru/categories/operations/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Инфраструктура<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10416" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10416"><a href="https://otus.ru/categories/information-security-courses/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Безопасность<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10417" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10417"><a href="https://otus.ru/categories/data-science/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Data Science<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10418" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10418"><a href="https://otus.ru/categories/gamedev/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">GameDev<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10419" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10419"><a href="https://otus.ru/categories/marketing-business/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Управление<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10420" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10420"><a href="https://otus.ru/categories/analytics/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Аналитика и анализ<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10421" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10421"><a href="https://otus.ru/categories/testing/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Тестирование<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
</ul></div> </div>
</div>
</div>
<div class="main wrap">
<div class="ts-row cf">
<div class="col-8 main-content cf">
<article id="post-5084" class="the-post post-5084 post type-post status-publish format-standard has-post-thumbnail category-polza tag-matematika tag-programmirovanie">
<header class="post-header the-post-header cf">
<div class="post-meta the-post-meta">
<span class="post-cat">
<a href="https://otus.ru/journal/category/polza/" class="category" data-wpel-link="internal">Полезное</a>
</span>
<h1 class="post-title">
Множества: определение, значимость, применение в программировании
</h1>
<a href="https://otus.ru/journal/mnozhestva-opredelenie-znachimost-primenenie-v-programmirovanii/" class="date-link" data-wpel-link="internal"><time class="post-date">28 ноября, 2022</time></a>
</div>
<div class="featured">
<a href="https://otus.ru/journal/wp-content/uploads/2022/11/oj-1080x720-37-1.png" class="image-link" data-wpel-link="internal"><img width="770" height="515" src="data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%20770%20515%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%3E%3C%2Fsvg%3E" class="attachment-contentberg-main size-contentberg-main lazyload wp-post-image" alt="Множества: определение, значимость, применение в программировании" title="Множества: определение, значимость, применение в программировании" decoding="async" fetchpriority="high" data-srcset="https://otus.ru/journal/wp-content/uploads/2022/11/oj-1080x720-37-1-770x515.png 770w, https://otus.ru/journal/wp-content/uploads/2022/11/oj-1080x720-37-1-300x200.png 300w, https://otus.ru/journal/wp-content/uploads/2022/11/oj-1080x720-37-1-1024x683.png 1024w, https://otus.ru/journal/wp-content/uploads/2022/11/oj-1080x720-37-1-150x100.png 150w, https://otus.ru/journal/wp-content/uploads/2022/11/oj-1080x720-37-1-270x180.png 270w" data-src="https://otus.ru/journal/wp-content/uploads/2022/11/oj-1080x720-37-1-770x515.png" data-sizes="(max-width: 770px) 100vw, 770px" /> </a>
</div>
</header><!-- .post-header -->
<div class="post-content description cf entry-content content-normal">
<div id="ez-toc-container" class="ez-toc-v2_0_61 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction">
<div class="ez-toc-title-container">
<p class="ez-toc-title " >Содержание</p>
<span class="ez-toc-title-toggle"><a href="#" class="ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle" aria-label="Toggle Table of Content"><span class="ez-toc-js-icon-con"><span class=""><span class="eztoc-hide" style="display:none;">Toggle</span><span class="ez-toc-icon-toggle-span"><svg style="fill: #999;color:#999" xmlns="http://www.w3.org/2000/svg" class="list-377408" width="20px" height="20px" viewBox="0 0 24 24" fill="none"><path d="M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z" fill="currentColor"></path></svg><svg style="fill: #999;color:#999" class="arrow-unsorted-368013" xmlns="http://www.w3.org/2000/svg" width="10px" height="10px" viewBox="0 0 24 24" version="1.2" baseProfile="tiny"><path d="M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z"/></svg></span></span></span></a></span></div>
<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-1" href="#%D0%9E%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5" title="Определение">Определение</a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-2" href="#%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D0%B5_%D1%81%D0%BE%D1%81%D1%82%D0%B0%D0%B2%D0%BB%D1%8F%D1%8E%D1%89%D0%B8%D0%B5" title="Основные составляющие">Основные составляющие</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-3" href="#%D0%92%D0%B8%D0%B4%D1%8B" title="Виды">Виды</a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class="ez-toc-link ez-toc-heading-4" href="#%D0%9D%D0%B0%D1%82%D1%83%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D1%81%D0%BE%D0%B2%D0%BE%D0%BA%D1%83%D0%BF%D0%BD%D0%BE%D1%81%D1%82%D0%B8" title="Натуральные совокупности">Натуральные совокупности</a></li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class="ez-toc-link ez-toc-heading-5" href="#%D0%A6%D0%B5%D0%BB%D1%8B%D0%B5_%D1%81%D0%BE%D0%B2%D0%BE%D0%BA%D1%83%D0%BF%D0%BD%D0%BE%D1%81%D1%82%D0%B8" title="Целые совокупности">Целые совокупности</a></li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class="ez-toc-link ez-toc-heading-6" href="#%D0%A0%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D1%81%D0%BE%D0%B2%D0%BE%D0%BA%D1%83%D0%BF%D0%BD%D0%BE%D1%81%D1%82%D0%B8" title="Рациональные совокупности">Рациональные совокупности</a></li></ul></li></ul></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-7" href="#%D0%9A%D0%B0%D0%BA_%D0%B7%D0%B0%D0%B4%D0%B0%D0%B2%D0%B0%D1%82%D1%8C_%D0%B2_%D0%BC%D0%B0%D1%82%D0%B5%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B5" title="Как задавать в математике">Как задавать в математике</a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-8" href="#%D0%9F%D0%B5%D1%80%D0%B5%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2%D1%81%D0%B5%D1%85_%D1%8D%D0%BB%D0%B5%D0%BC%D0%B5%D0%BD%D1%82%D0%BE%D0%B2" title="Перечисление всех элементов">Перечисление всех элементов</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-9" href="#%D0%A7%D0%B5%D1%80%D0%B5%D0%B7_%D1%85%D0%B0%D1%80%D0%B0%D0%BA%D1%82%D0%B5%D1%80%D0%B8%D1%81%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D1%81%D0%B2%D0%BE%D0%B9%D1%81%D1%82%D0%B2%D0%BE" title="Через характеристическое свойство">Через характеристическое свойство</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-10" href="#%D0%9D%D0%B5%D1%81%D0%BA%D0%BE%D0%BB%D1%8C%D0%BA%D0%BE_%D1%81%D0%BB%D0%BE%D0%B2_%D0%BE_%D0%BF%D0%BE%D0%B4%D0%BC%D0%BD%D0%BE%D0%B6%D0%B5%D1%81%D1%82%D0%B2%D0%B0%D1%85" title="Несколько слов о подмножествах">Несколько слов о подмножествах</a></li></ul></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-11" href="#%D0%9E%D1%82%D0%BD%D0%BE%D1%88%D0%B5%D0%BD%D0%B8%D1%8F" title="Отношения">Отношения</a></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-12" href="#%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B_%D1%81_Python" title="Особенности работы с Python">Особенности работы с Python</a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-13" href="#%D0%97%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5" title="Задание">Задание</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-14" href="#%D0%A0%D0%B0%D0%B1%D0%BE%D1%82%D0%B0_%D1%81_%D1%8D%D0%BB%D0%B5%D0%BC%D0%B5%D0%BD%D1%82%D0%B0%D0%BC%D0%B8" title="Работа с элементами">Работа с элементами</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-15" href="#%D0%A1%D0%BF%D0%BE%D1%81%D0%BE%D0%B1%D1%8B_%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D0%B8_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85" title="Способы записи данных">Способы записи данных</a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class="ez-toc-link ez-toc-heading-16" href="#%D0%97%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B2%D1%80%D1%83%D1%87%D0%BD%D1%83%D1%8E" title="Задание вручную">Задание вручную</a></li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class="ez-toc-link ez-toc-heading-17" href="#%D0%93%D0%B5%D0%BD%D0%B5%D1%80%D0%B0%D1%82%D0%BE%D1%80_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D1%87%D0%B8%D1%81%D0%B5%D0%BB" title="Генератор случайных чисел">Генератор случайных чисел</a></li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class="ez-toc-link ez-toc-heading-18" href="#%D0%9F%D0%BE_%D1%84%D0%BE%D1%80%D0%BC%D1%83%D0%BB%D0%B5" title="По формуле">По формуле</a></li></ul></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-19" href="#%D0%9E%D0%BF%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%B8" title="Операции">Операции</a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class="ez-toc-link ez-toc-heading-20" href="#%D0%9E%D0%B1%D1%8A%D0%B5%D0%B4%D0%B8%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5" title="Объединение">Объединение</a></li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class="ez-toc-link ez-toc-heading-21" href="#%D0%9F%D0%B5%D1%80%D0%B5%D1%81%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D0%B5" title="Пересечение">Пересечение</a></li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class="ez-toc-link ez-toc-heading-22" href="#%D0%A0%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D1%8C" title="Разность">Разность</a></li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class="ez-toc-link ez-toc-heading-23" href="#%D0%9E%D1%81%D0%BE%D0%B1%D1%8B%D0%B5_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D1%8B" title="Особые методы">Особые методы</a></li></ul></li></ul></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-24" href="#%D0%9A%D0%B0%D0%BA_%D0%B2%D1%8B%D0%B2%D0%B5%D1%81%D1%82%D0%B8" title="Как вывести">Как вывести</a></li></ul></nav></div>
<p>Множество – это понятие, которое рассматривается в большинстве точных наук, встречаясь не только в математике, но и в информатике. Является крайне важным компонентом, особенно при работе с несколькими значениями.</p>
<p>В данной статье будет рассказано о том, для чего на самом деле нужны множества. Предстоит познакомиться с их видами, а также ключевыми особенностями. Также придется рассмотреть ключевые операции и примеры применения в программировании. В качестве основы возьмем Pascal. Несмотря на то, что соответствующий язык разработки в 2022 году не пользуется особым спросом, он прекрасно объяснит «базу» выбранного направления. После этого удастся более подробно изучить множества и их элементы в других, более сложных языках программирования.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9E%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5"></span>Определение<span class="ez-toc-section-end"></span></h2>
<p>Множество – математическая модель. Является одним из ключевых понятий в соответствующей науке. Представляет собой набор, совокупность каких-либо (совершенно любых) объектов, называемых элементами этого самого множества. Два подобных компонента будут равными, если они содержат одинаковые элементы.</p>
<p>Множество – неупорядоченная совокупность уникальных значений хаотичного характера. Упорядоченное множество в программировании и иных науках носит название массива.</p>
<p>В качестве элементов множества могут выступать:</p>
<ul>
<li>символы;</li>
<li>строки;</li>
<li>числа.</li>
</ul>
<p>Главное помнить, что перечисленные элементы должны быть константами. Это – значения, которые никогда не корректируются (не изменяются). В случае с программированием – остаются постоянными на протяжении всего цикла жизни приложения.</p>
<p>В математике есть отдельная дисциплина. Она носит название теории множеств. Полностью посвящена изучению соответствующего компонента. Классическое определение рассматриваемому математическому элементу дал математик-немец Георг Кантор. Он описал множество как «многое, мыслимое как единое целое».</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D0%B5_%D1%81%D0%BE%D1%81%D1%82%D0%B0%D0%B2%D0%BB%D1%8F%D1%8E%D1%89%D0%B8%D0%B5"></span>Основные составляющие<span class="ez-toc-section-end"></span></h3>
<p>Перед тем, как рассматривать разные множества в языках программирования, необходимо хорошенько изучить их за пределами разработки программного обеспечения. В противном случае высоки риски допущения ошибок в приложении.</p>
<p>Первое, на что нужно обратить внимание – это основные составляющие «неупорядоченных массивов». Здесь стоит запомнить следующее:</p>
<ol>
<li>Элементы – это объекты или элементы, которые составляют множество. В программировании – значения и переменные.</li>
<li>В математике и иных науках сами множества обозначаются заглавными буквами. Обычно – латинскими.</li>
<li>Элементы «неупорядоченных массивов» указываются прописными латинскими буквами (a, c, f,…). Возможно указание букв с индексами (a<sub>1</sub>, a<sub>2</sub>, a<sub>3</sub>,…).</li>
<li>Существуют множества, которые не содержат ни одного элемента. Такие объекты называются пустыми. Пример – нечетные числа, которые делятся на 2.</li>
</ol>
<p>Это – только начало. Работа с рассматриваемыми компонентами на самом деле не слишком трудная. Особенно если предварительно хорошенько ознакомиться с математической теорией.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="%D0%92%D0%B8%D0%B4%D1%8B"></span>Виды<span class="ez-toc-section-end"></span></h3>
<p>Существуют совершенно разные виды множеств, особенно в разработке. Этот момент зависит от того, какой тип данных хранит в себе «неупорядоченный массив», а также от размера:</p>
<ol>
<li>Числовые. Его элементами будут являться только числа.</li>
<li>Тестовые. Несут в себе элементы, состоящие из текстовых значений. В математике не встречается. Такой вариант актуален только для разработки.</li>
<li>Конечные. Совокупности, обладающие минимальными и максимальными пределами. Наглядные пример – отрезки.</li>
<li>Бесконечные. Множества, которые не имеют конца. Пример – числовые совокупности.</li>
<li>Пустые. Те, что не содержат в себе никаких элементов.</li>
</ol>
<p>Если два мно жества включают в себя одинаковые элементы, то одно из них – это подмножество другого. Когда совокупности включают в себя совершенно одинаковые элементы, они будут рассматриваться в качестве равных.</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh4.googleusercontent.com/-iu_wUsSQNKTEQtnoslIChBzB3PxfGNnia0Bn3WmhPCQxR85rTaiOxJHgEK1bCoVIy2L0J7ZIX6ZcSJsCsUGfwbHbVhZJ3eQfPyKoZLr5AxFzAIVq9DzaU7CyrzH9PZqBEqVhwAx2SWAA5AAcrBebtjQN6VxKJQuFtz1SDig5Y7uDzuXk7MTcRZlobjU-6XbNlq3bXQ3eQ" alt="Множества: определение, значимость, применение в программировании"/></figure>
<p>Выше – примеры того, как в математике обозначаются те или иные числовые множества. Далее более подробно рассмотрим первые три элемента.</p>
<h4 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9D%D0%B0%D1%82%D1%83%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D1%81%D0%BE%D0%B2%D0%BE%D0%BA%D1%83%D0%BF%D0%BD%D0%BE%D1%81%D1%82%D0%B8"></span><em>Натуральные совокупности</em><span class="ez-toc-section-end"></span></h4>
<p>Существуют разные виды множеств как в математике, так и в программировании. Работа даже в разработке программного обеспечения в основном происходит при помощи числовых значений и совокупностей. Поэтому соответствующему типу «неупорядоченных массивов» рекомендуется уделить больше времени.</p>
<p>Первый вариант – множества натуральных чисел. К ним относятся цифры, которые люди используют при счете. Начинаются с 1 и длятся до бесконечности.</p>
<p>Вопрос относительно ноля неоднозначен. Некоторые ученые по сей день говорят, что он относится к натуральным, а кто-то твердит об обратном.</p>
<p>Работа с такими множествами используется для исчисления порядка предметов, элементов или иных объектов. Обязательным условием является то, что каждое число в рассматриваемой совокупности должно быть больше предыдущего. В программировании такое множество является массивом.</p>
<h4 class="wp-block-heading"><span class="ez-toc-section" id="%D0%A6%D0%B5%D0%BB%D1%8B%D0%B5_%D1%81%D0%BE%D0%B2%D0%BE%D0%BA%D1%83%D0%BF%D0%BD%D0%BE%D1%81%D1%82%D0%B8"></span><em>Целые совокупности</em><span class="ez-toc-section-end"></span></h4>
<p>А это – совокупность, которая включает в себя:</p>
<ul>
<li>ноль;</li>
<li>положительные натуральные числа;</li>
<li>отрицательные числа.</li>
</ul>
<p>Это – «расширенная версия» множества натуральных совокупностей. Отсюда следует, что N является подмножеством Z.</p>
<h4 class="wp-block-heading"><span class="ez-toc-section" id="%D0%A0%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D1%81%D0%BE%D0%B2%D0%BE%D0%BA%D1%83%D0%BF%D0%BD%D0%BE%D1%81%D1%82%D0%B8"></span><em>Рациональные совокупности</em><span class="ez-toc-section-end"></span></h4>
<p>Q – это множество, которое включает в себя целые и смешанные числа, а также дроби (десятичные и обычные). Любое рациональное число можно представить в виде дроби. У нее числитель – это разные целые, а знаменатели – натуральные. N и Z – это подмножества Q.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9A%D0%B0%D0%BA_%D0%B7%D0%B0%D0%B4%D0%B0%D0%B2%D0%B0%D1%82%D1%8C_%D0%B2_%D0%BC%D0%B0%D1%82%D0%B5%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B5"></span>Как задавать в математике<span class="ez-toc-section-end"></span></h2>
<p>Перед тем, как рассматривать операции со множествами, нужно выяснить, каким образом задавать их элементы. В программировании существуют различные варианты реализации поставленной задачи. Реализация соответствующих концепций напрямую зависит от выбранного языка разработки. Об этом чуть позже. Для начала рассмотрим несколько различных вариантов задания множеств в математике.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9F%D0%B5%D1%80%D0%B5%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2%D1%81%D0%B5%D1%85_%D1%8D%D0%BB%D0%B5%D0%BC%D0%B5%D0%BD%D1%82%D0%BE%D0%B2"></span>Перечисление всех элементов<span class="ez-toc-section-end"></span></h3>
<p>Самый простой вариант. Задать множество можно, если просто перечислить все элементы, предусматриваемые заданной совокупностью. Их названия записываются в строчку через запятую. В математике подобная «цепочка» заключается в фигурные скобки. Запись является своеобразным аналогом одномерного массива в разработке, если все числа в совокупности упорядочены.</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh6.googleusercontent.com/KXagAx2w5suIf05fM4ghtUB09Etj3DVuyISzMuWdXpcc7zQ46i-vox6s4N8za-eaFP51M9bS6bdQKXSem4n26m1EVQD3TmeZ35ttl0Jp0rbEEuAW0XUG6GUk1SQPokmpK_mgZyO7Nq_iJhZUXPqAvnXobrSHUduc2J1K1ImZB5Etojw6GbGDqXViwevugbiL8-Ura1biaA" alt="Множества: определение, значимость, применение в программировании"/></figure>
<p>Выше можно увидеть пример того, как соответствующий вариант будет выглядеть на практике.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="%D0%A7%D0%B5%D1%80%D0%B5%D0%B7_%D1%85%D0%B0%D1%80%D0%B0%D0%BA%D1%82%D0%B5%D1%80%D0%B8%D1%81%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D1%81%D0%B2%D0%BE%D0%B9%D1%81%D1%82%D0%B2%D0%BE"></span>Через характеристическое свойство<span class="ez-toc-section-end"></span></h3>
<p>Характеристическое свойство – свойство, которым обладает каждый элемент, принадлежащий множеству, и не обладает ни один элемент за его пределами.</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh3.googleusercontent.com/2TbVufqSsW2n2HjnWF_EDRTf6t_p670PjScvQMjcy64ECZO25nqyvLK9BrY2XhHvvPt0utpVE6Gk_ujsEYIFJwl6hMLvJS84JlPfaA2WEl83OX8y43AQBWOyeIB5JGQzgBYcP12Sk501TF5HENiCr89a1CbmKyrGBMcPV80nQe7vUUC2ygZ8fWmh_S72PxDS7QAoZsYxFw" alt="Множества: определение, значимость, применение в программировании"/></figure>
<p>При помощи формулировки такого «параметра» можно задать множество данных в математике. Пример – это совокупность, состоящая из натуральных чисел меньше 10. В Pascal такой прием можно назвать «задание множества по установленному правилу/формуле».</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9D%D0%B5%D1%81%D0%BA%D0%BE%D0%BB%D1%8C%D0%BA%D0%BE_%D1%81%D0%BB%D0%BE%D0%B2_%D0%BE_%D0%BF%D0%BE%D0%B4%D0%BC%D0%BD%D0%BE%D0%B6%D0%B5%D1%81%D1%82%D0%B2%D0%B0%D1%85"></span>Несколько слов о подмножествах<span class="ez-toc-section-end"></span></h3>
<p>Подмножество – это такое множество, все элементы которого включены в другую совокупность. Вторая обычно более крупная. Множество A является подмножеством B, если каждый элемент A является элементом множества B.</p>
<p>Здесь необходимо запомнить следующее:</p>
<ol>
<li>B – подмножество A, если все его элементы включены во вторую совокупность.</li>
<li>Любое непустое подмножество B множества A, которое не совпадает с A – это собственное подмножество.</li>
<li>Для множества A пустое множество и сама совокупность A – это несобственные подмножества A.</li>
<li>Множество, включающее в свой состав все рассматриваемые множества – универсальное. Обозначается в математике как U.</li>
<li>Для каждого множества, состоящего из n элементов, допускается образование 2<sup>n</sup> подмножеств.</li>
<li>Любую рассматриваемую совокупность можно изобразить графически. Для этого нужно ее элементы представить в виде точек в пределах заданного контура.</li>
<li>Универсальное множество изображается в виде прямоугольника. Остальные – кругами.</li>
</ol>
<p>Для того, чтобы изобразить множества и операции над ними, обычно используются так называемые диаграммы Венна. Они будут приведены ниже. Нужны не только для обозначения «упорядоченных массивов информации» на бумаге, но и помогают найти результат выполнения тех или иных операций.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9E%D1%82%D0%BD%D0%BE%D1%88%D0%B5%D0%BD%D0%B8%D1%8F"></span>Отношения<span class="ez-toc-section-end"></span></h2>
<p>Иногда в математических задачах необходимо найти отношение между несколькими «неупорядоченными массивами». Для этого нужны как графические интерпретации (они помогают быстрее и лучше разобраться в выбранном направлении), так и некоторые теоретические данные.</p>
<p>Здесь рекомендуется запомнить следующие особенности:</p>
<ol>
<li>Если у двух множеств нет общих элементов – они находятся в отношении непересечения.</li>
<li>Когда общие элементы есть – множества находятся в отношении пересечения.</li>
<li>Если существует элемент (хотя бы один), который принадлежит исключительно множеству A, а также отдельный элемент, относящийся только к B и такой компонент, который относится к обоим «неупорядоченным массивам» — это ситуация, при которой A и B находятся в «обобщенном» положении пересечения.</li>
<li>Отношение включения – когда все элементы одного множества включены в полной мере в другое.</li>
<li>Равенство – если каждый элемент из A будет выступать элементом B. В данном случае необходимо действие обратного утверждения: когда также компоненты B включены в A.</li>
</ol>
<figure class="wp-block-image"><img decoding="async" src="https://lh4.googleusercontent.com/5HYYUcAVc9HKNug30VDhXzyTPrShHBtwMtjUDfqDwiqbeVZbLFI0ZLf0f1s2LOM-06C9uQq8Fnd18-803iixN46icUA9XN5F0aGF11rD3gsRPGGU3tCMMyQEjOT-cqjJkHJZxIu47yNf5o1bHQSqu08ifg6CHD4LiDooCOpE1T9o4_yrGigVys17PrpQz7njySBpQq5Fag" alt="Множества: определение, значимость, применение в программировании"/></figure>
<p>Выше – пример того, как грамотно определять отношения между двумя множествами. Это схематическое представление является универсальным.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B_%D1%81_Python"></span>Особенности работы с Python<span class="ez-toc-section-end"></span></h2>
<p>Перед тем как выполнять различные операции с имеющимися множествами, стоит изучить много информации по Python. Возможные манипуляции с «неупорядоченными массивами» будут рассматриваться не в теории и математике, а непосредственно на программном коде. Это поможет лучше разобраться в выбранном направлении.</p>
<p>В Питоне множество – это или самостоятельные элементы (менее чем из двух составляющих), а также последовательности (цепочки). Все составляющие такой совокупности будут неупорядоченными.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="%D0%97%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5"></span>Задание<span class="ez-toc-section-end"></span></h3>
<p>Для манипуляций с множеством сначала требуется создать соответствующий элемент программного кода. Его элементы указываются в фигурных скобках. Исключением послужит пустое множество. Оно будет устанавливаться в коде за счет функции set.</p>
<p>В set можно передать в качестве параметра:</p>
<ul>
<li>список;</li>
<li>кортеж;</li>
<li>строку.</li>
</ul>
<p>При обработке кода происходит возврат множества, составленного из элементов соответствующего объекта.</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh4.googleusercontent.com/J8NhUtHjoNeaO_9nbskc_malDc3cfWv2QLN_smJJbPLeiMyzPvyPTPLrjSuGk2eD_yRovyYdBB8wreBaxE7CUWnceXdISE8NIBj97Js7U8W2bVag5TYigUzBgjdMOlMi2fx5eg_8_XUfS7nwi1ZPxHBJdqjdjMzRuTgt-XnmvYT4tS81teU1bFfjUG3pm4KWMMWVbCQjFg" alt="Множества: определение, значимость, применение в программировании"/></figure>
<p>Каждый элемент множества может быть включен в него единожды. Повторения в Python возможны, но в единичных ситуациях. Чаще всего такая ситуация рассматривается системой как ошибка или вовсе игнорируется.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="%D0%A0%D0%B0%D0%B1%D0%BE%D1%82%D0%B0_%D1%81_%D1%8D%D0%BB%D0%B5%D0%BC%D0%B5%D0%BD%D1%82%D0%B0%D0%BC%D0%B8"></span>Работа с элементами<span class="ez-toc-section-end"></span></h3>
<p>Рассматривая операции со множествами, нужно сначала научиться выполнять различные манипуляции над элементами «неупорядоченных массивов» в Python:</p>
<ol>
<li>Для того чтобы найти количество элементов в заданной совокупности, используется len.</li>
<li>Перебор элементов производится при помощи цикла for. Переборка проводится в хаотичном порядке.</li>
<li>Для проверки элемента на принадлежность к совокупности нужно использовать in. Она вернет значение bool. Для соответствующей операции можно использовать not in.</li>
<li>Для добавления нового элемента используют различные методы. Один из них – через функцию add.</li>
<li>Для удаления в Python используются команды discard и remove.</li>
<li>Set – команда, которая позволяет устанавливать множество информации в программном коде.</li>
<li>Pop – метод, который удалит один случайный элемент. После этого произойдет возврат его значения. Также в Python будет сгенерировано исключение KeyError.</li>
</ol>
<p>Для того, чтобы создать список, в Питоне нужно использовать команду list. Эта информация – базовые знания, без которых не получится полноценно рассмотреть манипуляции с множествами.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="%D0%A1%D0%BF%D0%BE%D1%81%D0%BE%D0%B1%D1%8B_%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D0%B8_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85"></span>Способы записи данных<span class="ez-toc-section-end"></span></h3>
<p>Перед тем, как найти элементы множества и выполнить с ними те или иные действия, нужно задать соответствующие компоненты. В Python такие действия осуществляются несколькими способами:</p>
<ul>
<li>вручную;</li>
<li>чтением из текстовых документов;</li>
<li>при помощи генератора случайных чисел;</li>
<li>по формуле или условиям.</li>
</ul>
<p>Вторая концепция встречается крайне редко, поэтому пользоваться ей приходится в исключительных ситуациях. Для новичков такой прием не имеет особой значимости.</p>
<h4 class="wp-block-heading"><span class="ez-toc-section" id="%D0%97%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B2%D1%80%D1%83%D1%87%D0%BD%D1%83%D1%8E"></span><em>Задание вручную</em><span class="ez-toc-section-end"></span></h4>
<p>Первый и самый простой вариант. Он напоминает задание элементов множества в математике. При запуске приложения пользователь сам будет вводить компоненты совокупности. Для этого используется клавиатура.</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh5.googleusercontent.com/kuvbvqe_BVxUGI-JzVobWea-ryeG6lgCGeErmPd5wvrwohGSZgKH6DbWkAHRozy4yt2RTUPzi9iENHD6hlSGW00oePk7xo0vzdXBB4uE8XTDGL476JxDWl8QluFWURj8wn0BEDqvRcEbvzt3kyKTxBJDbxV6LxMdrCX1hwSxr3Rsgqe5eLIcxkh7vB0CKXcrjaYzPS778A" alt="Множества: определение, значимость, применение в программировании"/></figure>
<p>Перед тем как рассматривать соответствующий процесс, нужно обозначить для дальнейших примеров то или иное множество. Пусть оно состоит из пяти элементов.</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh4.googleusercontent.com/zTQbbjmfRQc2gdBYzxUZ-thdTR9cRzCwzhSjB-R7DXnEqO_7C-M5QaBtZ3CPXPD8Hrj8IESHU-sNAtrXfYhCn4CfUrOfzrp6vTkgi8de5An3zonqQXYjju3x6h3DFxwkCNuI_ejYpSmmJEXGlpZEo9QSrZsYdp-nm5pDvLZRLdCKXRSLa51C8Q61iaFIHnu42SnQVwQPUQ" alt="Множества: определение, значимость, применение в программировании"/></figure>
<p>Выше – образец кода, который поможет задать элементы множества непосредственно через клавиатуру.</p>
<h4 class="wp-block-heading"><span class="ez-toc-section" id="%D0%93%D0%B5%D0%BD%D0%B5%D1%80%D0%B0%D1%82%D0%BE%D1%80_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D1%87%D0%B8%D1%81%D0%B5%D0%BB"></span><em>Генератор случайных чисел</em><span class="ez-toc-section-end"></span></h4>
<p>А вот – прием, который позволяет заполнять множество случайными числами:</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh3.googleusercontent.com/Dg_sj3itogN49VPnzKBdalGDRXEG6MhyuocdrvEiwdXT8w9rmlSz-eS5KaTGsEJQyshk6hbe09OCizcxBlHjYOp6RrzCQlzl0LOWTo1cYgbkMXhHtILbGuVBbUtvb-4yGLkxXWsK9dpcrn5FYWUJ9gZ01HMDZY472-zIrAGAhYQTBlQUMVIFy7_4F5PPSbPaXNeB42Hq5g" alt="Множества: определение, значимость, применение в программировании"/></figure>
<p>Такая концепция помогает удостовериться в работоспособности имеющегося кода или его фрагмента. Интервал, в пределах которого нужно задавать числа, устанавливается пользователем самостоятельно.</p>
<h4 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9F%D0%BE_%D1%84%D0%BE%D1%80%D0%BC%D1%83%D0%BB%D0%B5"></span><em>По формуле</em><span class="ez-toc-section-end"></span></h4>
<p>Это – пример кода, помогающего задать элементы множества по определенным правилам:</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh5.googleusercontent.com/IE7pOxyAi0qjngGv_QYyWOYwg387TrhUuXiBCjskbAkK66cJE3l-epEofIvMyLqUaWL4FnqFqaUzxT3vnWOKSnhVjJLezV75hT95mBuynSiYZmroCEulkq6ebZrr3GOx-bgu0lpaBEm834sbrs7m2e_MYmJ038Y0fu18zK6GWkthrP8UmLwUd3qTs8u5bY0LuuEjvvZq9A" alt="Множества: определение, значимость, применение в программировании"/></figure>
<p>Такой вариант используется при решении огромного количества задач. Он имеет аналогию в математике.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9E%D0%BF%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%B8"></span>Операции<span class="ez-toc-section-end"></span></h3>
<p>Теперь можно рассмотреть основные операции со множествами. Их в Python можно условно разделить на математические и «специальные». Основной упор будет сделан на первую категорию. Она является более распространенной.</p>
<h4 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9E%D0%B1%D1%8A%D0%B5%D0%B4%D0%B8%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5"></span><em>Объединение</em><span class="ez-toc-section-end"></span></h4>
<p>Базовая операция, которая выступает в качестве элементарной. Результатом будет массив, который включает в себя все элементы заданных «неупорядоченных цепочек данных».</p>
<p>Объединение можно провести через:</p>
<ul>
<li>оператор | («вертикальная черта»);</li>
<li>метод union().</li>
</ul>
<figure class="wp-block-image"><img decoding="async" src="https://lh6.googleusercontent.com/RJ8spa8n9ylUqwFE9OHY0656nXWqC883Va4KgFlyoZmytIytP2tO1DumBkLqtMvZ7bJzFMcqmEm4RYSY7GaYUrdWqpiFAwF04PYi-_AAfn5x_D-OEOmzaR30j-Teb15ruAtN-eL4y9P_SxgEBMSsembQo5CuVxUEda43Tl4rYbLFYb-yooISJo6rm8SpzQ7Wcla0Dgi96Q" alt="Множества: определение, значимость, применение в программировании"/></figure>
<p>Это – графическая интерпретация соответствующей операции при помощи диаграммы Венна.</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh4.googleusercontent.com/-N0NiJp7PRsTZzZKAimdbiuOc8bARm4gwYcAl17sPQULoQM1ZW-ZW4nPGX0veLNMDo5sLrmS-WpsGAp6FxipgL4Ei7ybLEsPE7BFXWbU0Zlb1F0Uf_j1AOhhWmt2_ZHO_wMldhoLzGU00Y883pmjVrbrtmfGZqwzKJvOBb0lIMKNniQGzabU66FlM8Jqn2Jjq50ZO6A1uA" alt="Множества: определение, значимость, применение в программировании"/></figure>
<figure class="wp-block-image"><img decoding="async" src="https://lh3.googleusercontent.com/W1kULDsLjvw4zaLDZsZa2w6rNvYapkI6sC_S4uKCcnv3bbEjA4L1Pi7vH7RDhBUBY-RBT8U_E4G5AO___MDD33KvDyFpnN9l-KyyTFF8tOjW0uauqvQ7qIzUFU-1OYAYwcxTxvEqaZPMdZUxJWlwRB0ylGCQPhbsetXWL-sk3zY0Er4y9fR2aMwgWjHdLR2W6c4yFb-5lQ" alt="Множества: определение, значимость, применение в программировании"/></figure>
<p>Выше можно увидеть форму представления объединения в Python обоими методами.</p>
<h4 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9F%D0%B5%D1%80%D0%B5%D1%81%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D0%B5"></span><em>Пересечение</em><span class="ez-toc-section-end"></span></h4>
<p>Еще одна базовая операция. Она активно изучается в школьной программе на уроках математики и алгебры. Результатом вычислений станет множество, которое включает в себя элементы, входящие в состав обоих «неупорядоченных массивов». Главное, чтобы эти компоненты были в них одновременно.</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh5.googleusercontent.com/R5DIEyVR0lKY65AyXw27tn2sAU8fbQmUep4asRdKIrlN9oqthkPiw0dt0zaRN3zb6f8u4DQEmM6K5ulK8uZpvB8k5jCQxMv0m8OEeWeoSlpvD6GEOePXMEILmmH3WomqbQxcHhNIdzDMeg6riVs8x0l1EWtB0dna_7XQlaM82CqrYzckgXUtzwaTg_0what6tCb6GnG01g" alt="Множества: определение, значимость, применение в программировании"/></figure>
<p>Такой код можно найти, если изучать программирование на Python.</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh5.googleusercontent.com/VTtlyfShFCpuYy9RJ_wkxMhiomYXpPNzW_wGAqKTLWd1YFA6V9OmRIgiZhGILbfNAY3bfm9UYC8Tdqyt7WfzHhz_wSrQJgl0h4RdUIK1WRThJ46s1nniqYAHACMUO3irjfznH-BLtugTZfqnh3zejmOdyGmCHqhhySEMrvFZrGhCjRFbjHU9Ai-YyIeqj1D7Ik5SqiYlUA" alt="Множества: определение, значимость, применение в программировании"/></figure>
<figure class="wp-block-image"><img decoding="async" src="https://lh6.googleusercontent.com/MuTjhvvXQZeW2uVPYCOKHAIUrBF3h4OphZdG7CwqHXm8r3xF2s3oN6P3y2T0xyslEI20HOVjRQAFMCfZjC626h2Rcqnd03kfOHzzMqsQ1QbSZ_aAdM-ZM2NzCitVJibLATruyDoHl0664_eMoUWvoF2RJBZfRtPGtSB3ecoBpHp1YPkdjyniU09mtGRuyleeVE9QUmnMFQ" alt="Множества: определение, значимость, применение в программировании"/></figure>
<p>Для того, чтобы воспользоваться соответствующей операцией, можно задействовать оператор & или метод intersection.</p>
<h4 class="wp-block-heading"><span class="ez-toc-section" id="%D0%A0%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D1%8C"></span><em>Разность</em><span class="ez-toc-section-end"></span></h4>
<p>Разность множеств – это формирование нового «неупорядоченного массива». В нем будут содержаться лишь элементы, которые включены только к первому множеству.</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh4.googleusercontent.com/WU18Nof_0GZX0BIa3HsyBfvMorJsBlpIVCbwJtkH2DZEo1qoR0Gq5GDGYU5gSJtYcjb_w1lpueaVbYAsVWqzQp9M0scA9-yKXXDWspgyN4rN3GY1a6i-ChroKuujuveHY_cyVqGuzlkRMzZyzDQVXkk_rTiXgsDvUrkXRLGkqDHUJVQUwEc0s4TwvQVmyATKoHZrmSyOnw" alt="Множества: определение, значимость, применение в программировании"/></figure>
<p>Если осуществить поиск данных в Python по реализации данной операции, можно увидеть, что для этого используется или метод difference, или оператор -.</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh5.googleusercontent.com/9402E7EGtHeYsP2gYIGlMQlZ243QHnXbrKSypNhk8qeKmNTGle28dP_xErm7m-h0JWhMXMQ8r1l5Duvgtfpz_7d-8_T8Sz73D8lErv2NM9JqgC91-2fvkO-lqZwHM_44jv9DNnKxBTsHWwDZ4cbdwJYyoSZyi2IfPB16Ds0lgPF0_mc9mdksMnhOZw5GBSWK8QncIrWyWg" alt="Множества: определение, значимость, применение в программировании"/></figure>
<figure class="wp-block-image"><img decoding="async" src="https://lh4.googleusercontent.com/97cYovPDEGhj5sOD7Es92oJLqIcoMSXIj4wKJ9uhp6Z1Pup76jXgC-pDxw8oCt-nxXaL0DvpIbvqgguz1p8bq08H6Qw9Mp6CPJF3Mkn9cC3hzMlYW6UsRcbhuY9zs1RTYyCPua_8Q85dCvGzXvdjrIAMOKgqkumrvr-qi5zj0aYNkdr_UMx2SBnUMQRfjZAJZy3r8UVazw" alt="Множества: определение, значимость, применение в программировании"/></figure>
<p>Также есть симметрическая разность. Результатом станет множество, в котором содержатся элементы из обоих массив. Исключены те, что есть сразу в обоих «неупорядоченных массивов». Система находит так называемое пересечение и устраняет его из итогового результата.</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh5.googleusercontent.com/AZPOko-QGx73eipUFXd3GWeN_5z1_OrPGYHNGwwSqYqW0YvjVBWn8o0MsCJtLbhFmVNR0FuUPxclgPHSYiqyVOi8e1lsldeFuior5HejDp-N-2lnAu2xgLtTN4MSI8qlYrLwor-WP4t5Fm18nDPv7VAp_UmIbwYhY0-itqOKAo8FUL9jZ_RTdmPS5Co4-Iw9G560W9Z8eA" alt="Множества: определение, значимость, применение в программировании"/></figure>
<p>В Python для реализации этой манипуляции используют или метод symmetric difference, или ^.</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh6.googleusercontent.com/3gSLwYEAlrT2n1WMsrWSjO21lVm7o4NeNpPlf7tGwStojJ7rGQ36C4kgkuXbSszkqWIGscFfUhTMlMY2G-YrD5MDtlCEHndY1aCo0KFFs9RqxTxMnyKyaQBr_Y--mBf1DX5lX9I-adFcLS8wVsmf2uJfgYliPyShJXjYTn5k4IEo6pY1BBEUVCG6RAw6kBWrNv09MRew3w" alt="Множества: определение, значимость, применение в программировании"/></figure>
<figure class="wp-block-image"><img decoding="async" src="https://lh4.googleusercontent.com/bWpQBKo8ipXkABoxg6u-C9z6uQSl3cS1xunQmrg0CbnOPb7THkk8Qg7Oud8V4Fq5yX_Jia_DueMo5ErpGx4zqOJwkQiRrVYDyo1IZnWolvUAJiHcufBE3RDq2QtV0HgLjJidSScIm_JcmCDYzt0t0mtRQe4qIUc3FpaiB7YWlx4oAXHdczIDc0w0-JjHdIxRcPs43x5OoQ" alt="Множества: определение, значимость, применение в программировании"/></figure>
<p>Так выглядит непосредственная реализация на выбранном языке программирования.</p>
<h4 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9E%D1%81%D0%BE%D0%B1%D1%8B%D0%B5_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D1%8B"></span><em>Особые методы</em><span class="ez-toc-section-end"></span></h4>
<p>Кроме изученных ранее операций с «неупорядоченными массивами» можно выполнять иные манипуляции. Они носят название «специальных». Сюда относят следующие варианты:</p>
<ol>
<li>Определение, есть ли у двух set-ов общие элементы. Для этого используется Isdisjoint().</li>
<li>Issubset(). Данный метод используется для проверки на подмножество. Оператор < тут будет определять строгость подмножества. Он ведет себя подобно <=.</li>
<li>Issupset(). Аналог предыдущего варианта, но с оператором >.</li>
<li>Update(). Используется для того, чтобы изменить исходное множество по объединению.</li>
<li>Interseption_update(). Отвечает за пересечение.</li>
<li>Difference_update. Позволяет корректировать разность множеств.</li>
<li>Symmetric_difference_update(). Поддерживает изменение симметрической разности.</li>
</ol>
<figure class="wp-block-image"><img decoding="async" src="https://lh4.googleusercontent.com/8A3OWAmTBf4foESlaCUariMQQ_uKAH6G1YeysIDAkxqoWikR14_ulafwoic7HlUzvUl7ai_SvKWyqXWV9VoIIdW2IxPDx2Go5kEH-sWorg5eLO2NNVPGanm1-hTNKV2hvzF_hDXPl45bDf8Yx0mY0-c0P3eMOFfU7GX20-symiGzWvHHoyAdDVHpK_h7ii2mSHeduBettQ" alt="Множества: определение, значимость, применение в программировании"/></figure>
<p>Это – таблица, которая поможет быстрее и лучше разобраться с множествами и возможными действиями с ними. Данная информация актуальна как для математики, так и для программирования.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9A%D0%B0%D0%BA_%D0%B2%D1%8B%D0%B2%D0%B5%D1%81%D1%82%D0%B8"></span>Как вывести<span class="ez-toc-section-end"></span></h2>
<p>После того как то или иное действие с множеством проведено, его потребуется вывести на экран. Это еще одна манипуляция, о которой должен знать каждый разработчик Python.</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh5.googleusercontent.com/QWSiXdhYxhBdD1MmVJ2F81AEy3fLv2w2zPfDNyWngQKZx4NGLaHyug436EfNxX44oWkYKnDyjkWlUakBNHJNpR4GkHAIEFRLtgs2TCXeBBxEJFeKnmjjIpE7mDoJnDvwxFp6CywE8ujelQaiklnT50_9lFmHjFDrP7T9Zc9szhnxh-B5ntxN81oJFNdCgJ5-P6vQ9ZqGCw" alt="Множества: определение, значимость, применение в программировании"/></figure>
<p>Для реализации поставленной задачи необходимо использовать цикл. Лучше всего для этого подходит for.</p>
<p><em>Хотите освоить современную IT-специальность? Огромный выбор курсов по востребованным IT-направлениям есть в <a href="https://otus.ru/?utm_source=oj" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Otus<span class="wpel-icon wpel-image wpel-icon-6"></span></a>!</em></p>
<p>Также вам может быть интересен следующий курс:</p>
<figure class="wp-block-image"><a href="https://otus.ru/lessons/math-ds-advanced/?utm_source=oj&utm_medium=affilate&utm_campaign=math_ds" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer"><img decoding="async" width="970" height="90" src="https://otus.ru/journal/wp-content/uploads/2022/04/Math_DS_970x90-5.jpg" alt="Множества: определение, значимость, применение в программировании" class="wp-image-3401" srcset="https://otus.ru/journal/wp-content/uploads/2022/04/Math_DS_970x90-5.jpg 970w, https://otus.ru/journal/wp-content/uploads/2022/04/Math_DS_970x90-5-300x28.jpg 300w, https://otus.ru/journal/wp-content/uploads/2022/04/Math_DS_970x90-5-150x14.jpg 150w, https://otus.ru/journal/wp-content/uploads/2022/04/Math_DS_970x90-5-768x71.jpg 768w" sizes="(max-width: 970px) 100vw, 970px" /></a></figure>
<p><a href="https://otus.ru/journal/tag/matematika/" data-wpel-link="internal">МАТЕМАТИКА</a></p>
</div><!-- .post-content -->
<div class="the-post-foot cf">
<div class="tag-share cf">
<div class="post-tags"><a href="https://otus.ru/journal/tag/matematika/" rel="tag" data-wpel-link="internal">Математика</a><a href="https://otus.ru/journal/tag/programmirovanie/" rel="tag" data-wpel-link="internal">программирование</a></div>
<div class="post-share">
<div class="post-share-icons cf">
<span class="counters">
</span>
<a href="https://www.facebook.com/sharer.php?u=https%3A%2F%2Fotus.ru%2Fjournal%2Fmnozhestva-opredelenie-znachimost-primenenie-v-programmirovanii%2F" class="link facebook wpel-icon-right" target="_blank" title="Share on Facebook" data-wpel-link="external" rel="nofollow external noopener noreferrer"><i class="fa fa-facebook"></i><span class="wpel-icon wpel-image wpel-icon-6"></span></a>
<a href="https://twitter.com/intent/tweet?url=https%3A%2F%2Fotus.ru%2Fjournal%2Fmnozhestva-opredelenie-znachimost-primenenie-v-programmirovanii%2F&text=%D0%9C%D0%BD%D0%BE%D0%B6%D0%B5%D1%81%D1%82%D0%B2%D0%B0%3A%20%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5%2C%20%D0%B7%D0%BD%D0%B0%D1%87%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D1%8C%2C%20%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5%20%D0%B2%20%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B8" class="link twitter wpel-icon-right" target="_blank" title="Share on Twitter" data-wpel-link="external" rel="nofollow external noopener noreferrer"><i class="fa fa-twitter"></i><span class="wpel-icon wpel-image wpel-icon-6"></span></a>
<a href="https://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fotus.ru%2Fjournal%2Fmnozhestva-opredelenie-znachimost-primenenie-v-programmirovanii%2F" class="link linkedin wpel-icon-right" target="_blank" title="LinkedIn" data-wpel-link="external" rel="nofollow external noopener noreferrer"><i class="fa fa-linkedin"></i><span class="wpel-icon wpel-image wpel-icon-6"></span></a>
<a href="https://pinterest.com/pin/create/button/?url=https%3A%2F%2Fotus.ru%2Fjournal%2Fmnozhestva-opredelenie-znachimost-primenenie-v-programmirovanii%2F&media=https%3A%2F%2Fotus.ru%2Fjournal%2Fwp-content%2Fuploads%2F2022%2F11%2Foj-1080x720-37-1.png&description=%D0%9C%D0%BD%D0%BE%D0%B6%D0%B5%D1%81%D1%82%D0%B2%D0%B0%3A%20%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5%2C%20%D0%B7%D0%BD%D0%B0%D1%87%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D1%8C%2C%20%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5%20%D0%B2%20%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B8" class="link pinterest wpel-icon-right" target="_blank" title="Pinterest" data-wpel-link="external" rel="nofollow external noopener noreferrer"><i class="fa fa-pinterest-p"></i><span class="wpel-icon wpel-image wpel-icon-6"></span></a>
</div>
</div>
</div>
</div>
<div class="post-nav">
<div class="post previous cf">
<a href="https://otus.ru/journal/osobennosti-interpretatorov/" title="Prev Post" class="nav-icon" data-wpel-link="internal">
<i class="fa fa-angle-left"></i>
</a>
<span class="content">
<a href="https://otus.ru/journal/osobennosti-interpretatorov/" class="image-link" rel="previous" data-wpel-link="internal">
<img width="150" height="100" src="data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%20150%20100%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%3E%3C%2Fsvg%3E" class="attachment-thumbnail size-thumbnail lazyload wp-post-image" alt="Особенности интерпретаторов" decoding="async" loading="lazy" data-srcset="https://otus.ru/journal/wp-content/uploads/2022/11/oj-1080x720-36-1-150x100.png 150w, https://otus.ru/journal/wp-content/uploads/2022/11/oj-1080x720-36-1-300x200.png 300w, https://otus.ru/journal/wp-content/uploads/2022/11/oj-1080x720-36-1-1024x683.png 1024w, https://otus.ru/journal/wp-content/uploads/2022/11/oj-1080x720-36-1-768x512.png 768w, https://otus.ru/journal/wp-content/uploads/2022/11/oj-1080x720-36-1-270x180.png 270w, https://otus.ru/journal/wp-content/uploads/2022/11/oj-1080x720-36-1-770x515.png 770w, https://otus.ru/journal/wp-content/uploads/2022/11/oj-1080x720-36-1-370x245.png 370w, https://otus.ru/journal/wp-content/uploads/2022/11/oj-1080x720-36-1.png 1080w" data-src="https://otus.ru/journal/wp-content/uploads/2022/11/oj-1080x720-36-1-150x100.png" data-sizes="(max-width: 150px) 100vw, 150px" title="Особенности интерпретаторов" /> </a>
<div class="post-meta">
<span class="label">Prev Post</span>
<div class="post-meta post-meta-b">
<h2 class="post-title">
<a href="https://otus.ru/journal/osobennosti-interpretatorov/" data-wpel-link="internal">Особенности интерпретаторов</a>
</h2>
<div class="below">
<a href="https://otus.ru/journal/osobennosti-interpretatorov/" class="meta-item date-link" data-wpel-link="internal"><time class="post-date" datetime="2022-11-28T17:26:41+00:00">28 ноября, 2022</time></a>
<span class="meta-sep"></span>
<span class="meta-item read-time">4 Mins Read</span>
</div>
</div> </div>
</span>
</div>
<div class="post next cf">
<a href="https://otus.ru/journal/podprogrammy-opisanie-osobennosti-sfery-primeneniya/" title="Next Post" class="nav-icon" data-wpel-link="internal">
<i class="fa fa-angle-right"></i>
</a>
<span class="content">
<a href="https://otus.ru/journal/podprogrammy-opisanie-osobennosti-sfery-primeneniya/" class="image-link" rel="next" data-wpel-link="internal">
<img width="150" height="100" src="data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%20150%20100%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%3E%3C%2Fsvg%3E" class="attachment-thumbnail size-thumbnail lazyload wp-post-image" alt="Подпрограммы – описание, особенности, сферы применения" decoding="async" loading="lazy" data-srcset="https://otus.ru/journal/wp-content/uploads/2022/11/oj-1080x720-38-1-150x100.png 150w, https://otus.ru/journal/wp-content/uploads/2022/11/oj-1080x720-38-1-300x200.png 300w, https://otus.ru/journal/wp-content/uploads/2022/11/oj-1080x720-38-1-1024x683.png 1024w, https://otus.ru/journal/wp-content/uploads/2022/11/oj-1080x720-38-1-768x512.png 768w, https://otus.ru/journal/wp-content/uploads/2022/11/oj-1080x720-38-1-270x180.png 270w, https://otus.ru/journal/wp-content/uploads/2022/11/oj-1080x720-38-1-770x515.png 770w, https://otus.ru/journal/wp-content/uploads/2022/11/oj-1080x720-38-1-370x245.png 370w, https://otus.ru/journal/wp-content/uploads/2022/11/oj-1080x720-38-1.png 1080w" data-src="https://otus.ru/journal/wp-content/uploads/2022/11/oj-1080x720-38-1-150x100.png" data-sizes="(max-width: 150px) 100vw, 150px" title="Подпрограммы – описание, особенности, сферы применения" /> </a>
<div class="post-meta">
<span class="label">Next Post</span>
<div class="post-meta post-meta-b">
<h2 class="post-title">
<a href="https://otus.ru/journal/podprogrammy-opisanie-osobennosti-sfery-primeneniya/" data-wpel-link="internal">Подпрограммы – описание, особенности, сферы применения</a>
</h2>
<div class="below">
<a href="https://otus.ru/journal/podprogrammy-opisanie-osobennosti-sfery-primeneniya/" class="meta-item date-link" data-wpel-link="internal"><time class="post-date" datetime="2022-11-28T17:46:54+00:00">28 ноября, 2022</time></a>
<span class="meta-sep"></span>
<span class="meta-item read-time">8 Mins Read</span>
</div>
</div> </div>
</span>
</div>
</div>
<section class="related-posts grid-3">
<h4 class="section-head"><span class="title">Читать ещё</span></h4>
<div class="ts-row posts cf">
<article class="post col-4">
<a href="https://otus.ru/journal/uroven-gotovnosti-cto-k-2026/" title="Уровень готовности CTO к 2026" class="image-link" data-wpel-link="internal">
<img width="270" height="180" src="data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%20270%20180%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%3E%3C%2Fsvg%3E" class="image lazyload wp-post-image" alt="Уровень готовности CTO к 2026" title="Уровень готовности CTO к 2026" decoding="async" loading="lazy" data-srcset="https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-3-270x180.jpg 270w, https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-3-770x515.jpg 770w, https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-3-370x245.jpg 370w" data-src="https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-3-270x180.jpg" data-sizes="(max-width: 270px) 100vw, 270px" /> </a>
<div class="content">
<h3 class="post-title"><a href="https://otus.ru/journal/uroven-gotovnosti-cto-k-2026/" class="post-link" data-wpel-link="internal">Уровень готовности CTO к 2026</a></h3>
<div class="post-meta">
<time class="post-date" datetime="2025-11-16T19:50:59+00:00">16 ноября, 2025</time>
</div>
</div>
</article >
<article class="post col-4">
<a href="https://otus.ru/journal/novye-uroki-noyabrya-tolko-top-temy-po-programmirovaniju/" title="Новые уроки ноября: только топ-темы по программированию" class="image-link" data-wpel-link="internal">
<img width="270" height="180" src="data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%20270%20180%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%3E%3C%2Fsvg%3E" class="image lazyload wp-post-image" alt="Новые уроки ноября: только топ-темы по программированию" title="Новые уроки ноября: только топ-темы по программированию" decoding="async" loading="lazy" data-srcset="https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-2-270x180.jpg 270w, https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-2-770x515.jpg 770w, https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-2-370x245.jpg 370w" data-src="https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-2-270x180.jpg" data-sizes="(max-width: 270px) 100vw, 270px" /> </a>
<div class="content">
<h3 class="post-title"><a href="https://otus.ru/journal/novye-uroki-noyabrya-tolko-top-temy-po-programmirovaniju/" class="post-link" data-wpel-link="internal">Новые уроки ноября: только топ-темы по программированию</a></h3>
<div class="post-meta">
<time class="post-date" datetime="2025-11-09T23:24:11+00:00">9 ноября, 2025</time>
</div>
</div>
</article >
<article class="post col-4">
<a href="https://otus.ru/journal/schjot-idjot-na-chasy/" title="Счёт идёт на часы" class="image-link" data-wpel-link="internal">
<img width="270" height="180" src="data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%20270%20180%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%3E%3C%2Fsvg%3E" class="image lazyload wp-post-image" alt="Счёт идёт на часы" title="Счёт идёт на часы" decoding="async" loading="lazy" data-srcset="https://otus.ru/journal/wp-content/uploads/2025/10/oj-1080x720-kopiya-7-270x180.png 270w, https://otus.ru/journal/wp-content/uploads/2025/10/oj-1080x720-kopiya-7-770x515.png 770w, https://otus.ru/journal/wp-content/uploads/2025/10/oj-1080x720-kopiya-7-370x245.png 370w" data-src="https://otus.ru/journal/wp-content/uploads/2025/10/oj-1080x720-kopiya-7-270x180.png" data-sizes="(max-width: 270px) 100vw, 270px" /> </a>
<div class="content">
<h3 class="post-title"><a href="https://otus.ru/journal/schjot-idjot-na-chasy/" class="post-link" data-wpel-link="internal">Счёт идёт на часы</a></h3>
<div class="post-meta">
<time class="post-date" datetime="2025-10-30T15:04:59+00:00">30 октября, 2025</time>
</div>
</div>
</article >
</div>
</section>
</article> <!-- .the-post -->
</div>
<aside class="col-4 sidebar">
<div class="inner">
<ul>
<li id="search-2" class="widget widget_search"><h5 class="widget-title"><span>Поиск по блогу</span></h5>
<form method="get" class="search-form" action="https://otus.ru/journal/">
<label>
<span class="screen-reader-text">Search for:</span>
<input type="search" class="search-field" placeholder="Введите запрос и нажмите Enter" value="" name="s" title="Search for:" />
</label>
<button type="submit" class="search-submit"><i class="fa fa-search"></i></button>
</form>
</li>
<li id="tag_cloud-5" class="widget widget_tag_cloud"><h5 class="widget-title"><span>Метки</span></h5><div class="tagcloud"><a href="https://otus.ru/journal/tag/android-2/" class="tag-cloud-link tag-link-74 tag-link-position-1" style="font-size: 12.472222222222pt;" aria-label="Android (34 элемента)" data-wpel-link="internal">Android</a>
<a href="https://otus.ru/journal/tag/c-3/" class="tag-cloud-link tag-link-91 tag-link-position-2" style="font-size: 10.916666666667pt;" aria-label="C (23 элемента)" data-wpel-link="internal">C</a>
<a href="https://otus.ru/journal/tag/c-2/" class="tag-cloud-link tag-link-81 tag-link-position-3" style="font-size: 12.666666666667pt;" aria-label="C# (35 элементов)" data-wpel-link="internal">C#</a>
<a href="https://otus.ru/journal/tag/c/" class="tag-cloud-link tag-link-20 tag-link-position-4" style="font-size: 12.472222222222pt;" aria-label="c++ (34 элемента)" data-wpel-link="internal">c++</a>
<a href="https://otus.ru/journal/tag/computer-science/" class="tag-cloud-link tag-link-209 tag-link-position-5" style="font-size: 15.972222222222pt;" aria-label="computer science (78 элементов)" data-wpel-link="internal">computer science</a>
<a href="https://otus.ru/journal/tag/css/" class="tag-cloud-link tag-link-288 tag-link-position-6" style="font-size: 8.6805555555556pt;" aria-label="CSS (13 элементов)" data-wpel-link="internal">CSS</a>
<a href="https://otus.ru/journal/tag/data-science/" class="tag-cloud-link tag-link-151 tag-link-position-7" style="font-size: 8pt;" aria-label="Data Science (11 элементов)" data-wpel-link="internal">Data Science</a>
<a href="https://otus.ru/journal/tag/devops/" class="tag-cloud-link tag-link-98 tag-link-position-8" style="font-size: 10.138888888889pt;" aria-label="devops (19 элементов)" data-wpel-link="internal">devops</a>
<a href="https://otus.ru/journal/tag/docker/" class="tag-cloud-link tag-link-143 tag-link-position-9" style="font-size: 8.2916666666667pt;" aria-label="Docker (12 элементов)" data-wpel-link="internal">Docker</a>
<a href="https://otus.ru/journal/tag/gamedev/" class="tag-cloud-link tag-link-25 tag-link-position-10" style="font-size: 11.694444444444pt;" aria-label="gamedev (28 элементов)" data-wpel-link="internal">gamedev</a>
<a href="https://otus.ru/journal/tag/hr/" class="tag-cloud-link tag-link-103 tag-link-position-11" style="font-size: 8pt;" aria-label="hr (11 элементов)" data-wpel-link="internal">hr</a>
<a href="https://otus.ru/journal/tag/html/" class="tag-cloud-link tag-link-217 tag-link-position-12" style="font-size: 11.208333333333pt;" aria-label="HTML (25 элементов)" data-wpel-link="internal">HTML</a>
<a href="https://otus.ru/journal/tag/ios/" class="tag-cloud-link tag-link-101 tag-link-position-13" style="font-size: 8.9722222222222pt;" aria-label="iOS (14 элементов)" data-wpel-link="internal">iOS</a>
<a href="https://otus.ru/journal/tag/it/" class="tag-cloud-link tag-link-50 tag-link-position-14" style="font-size: 10.527777777778pt;" aria-label="IT (21 элемент)" data-wpel-link="internal">IT</a>
<a href="https://otus.ru/journal/tag/java/" class="tag-cloud-link tag-link-75 tag-link-position-15" style="font-size: 15.680555555556pt;" aria-label="Java (73 элемента)" data-wpel-link="internal">Java</a>
<a href="https://otus.ru/journal/tag/javascript/" class="tag-cloud-link tag-link-83 tag-link-position-16" style="font-size: 14.319444444444pt;" aria-label="JavaScript (53 элемента)" data-wpel-link="internal">JavaScript</a>
<a href="https://otus.ru/journal/tag/linux/" class="tag-cloud-link tag-link-141 tag-link-position-17" style="font-size: 11.888888888889pt;" aria-label="Linux (29 элементов)" data-wpel-link="internal">Linux</a>
<a href="https://otus.ru/journal/tag/machine-learning/" class="tag-cloud-link tag-link-167 tag-link-position-18" style="font-size: 8.6805555555556pt;" aria-label="Machine Learning (13 элементов)" data-wpel-link="internal">Machine Learning</a>
<a href="https://otus.ru/journal/tag/otus-book/" class="tag-cloud-link tag-link-261 tag-link-position-19" style="font-size: 9.9444444444444pt;" aria-label="otus book (18 элементов)" data-wpel-link="internal">otus book</a>
<a href="https://otus.ru/journal/tag/php/" class="tag-cloud-link tag-link-45 tag-link-position-20" style="font-size: 10.527777777778pt;" aria-label="PHP (21 элемент)" data-wpel-link="internal">PHP</a>
<a href="https://otus.ru/journal/tag/python/" class="tag-cloud-link tag-link-27 tag-link-position-21" style="font-size: 16.944444444444pt;" aria-label="Python (99 элементов)" data-wpel-link="internal">Python</a>
<a href="https://otus.ru/journal/tag/qa/" class="tag-cloud-link tag-link-155 tag-link-position-22" style="font-size: 11.402777777778pt;" aria-label="qa (26 элементов)" data-wpel-link="internal">qa</a>
<a href="https://otus.ru/journal/tag/sql/" class="tag-cloud-link tag-link-38 tag-link-position-23" style="font-size: 12.861111111111pt;" aria-label="SQL (37 элементов)" data-wpel-link="internal">SQL</a>
<a href="https://otus.ru/journal/tag/team-lead/" class="tag-cloud-link tag-link-364 tag-link-position-24" style="font-size: 9.9444444444444pt;" aria-label="team lead (18 элементов)" data-wpel-link="internal">team lead</a>
<a href="https://otus.ru/journal/tag/unity/" class="tag-cloud-link tag-link-24 tag-link-position-25" style="font-size: 8pt;" aria-label="unity (11 элементов)" data-wpel-link="internal">unity</a>
<a href="https://otus.ru/journal/tag/algoritmy/" class="tag-cloud-link tag-link-30 tag-link-position-26" style="font-size: 9.9444444444444pt;" aria-label="Алгоритмы (18 элементов)" data-wpel-link="internal">Алгоритмы</a>
<a href="https://otus.ru/journal/tag/bazy-dannyh/" class="tag-cloud-link tag-link-40 tag-link-position-27" style="font-size: 10.138888888889pt;" aria-label="Базы данных (19 элементов)" data-wpel-link="internal">Базы данных</a>
<a href="https://otus.ru/journal/tag/matematika/" class="tag-cloud-link tag-link-44 tag-link-position-28" style="font-size: 10.916666666667pt;" aria-label="Математика (23 элемента)" data-wpel-link="internal">Математика</a>
<a href="https://otus.ru/journal/tag/arhitektura-po/" class="tag-cloud-link tag-link-10 tag-link-position-29" style="font-size: 9.4583333333333pt;" aria-label="архитектура ПО (16 элементов)" data-wpel-link="internal">архитектура ПО</a>
<a href="https://otus.ru/journal/tag/bazy-dannyh-2/" class="tag-cloud-link tag-link-251 tag-link-position-30" style="font-size: 10.138888888889pt;" aria-label="базы данных (19 элементов)" data-wpel-link="internal">базы данных</a>
<a href="https://otus.ru/journal/tag/vebinar/" class="tag-cloud-link tag-link-201 tag-link-position-31" style="font-size: 13.930555555556pt;" aria-label="вебинар (48 элементов)" data-wpel-link="internal">вебинар</a>
<a href="https://otus.ru/journal/tag/dajdzhest/" class="tag-cloud-link tag-link-308 tag-link-position-32" style="font-size: 10.722222222222pt;" aria-label="дайджест (22 элемента)" data-wpel-link="internal">дайджест</a>
<a href="https://otus.ru/journal/tag/zapis-vebinara/" class="tag-cloud-link tag-link-226 tag-link-position-33" style="font-size: 14.902777777778pt;" aria-label="запись вебинара (61 элемент)" data-wpel-link="internal">запись вебинара</a>
<a href="https://otus.ru/journal/tag/zapis-uroka/" class="tag-cloud-link tag-link-272 tag-link-position-34" style="font-size: 16.069444444444pt;" aria-label="запись урока (80 элементов)" data-wpel-link="internal">запись урока</a>
<a href="https://otus.ru/journal/tag/informacionnaya-bezopasnost/" class="tag-cloud-link tag-link-232 tag-link-position-35" style="font-size: 10.138888888889pt;" aria-label="информационная безопасность (19 элементов)" data-wpel-link="internal">информационная безопасность</a>
<a href="https://otus.ru/journal/tag/karera-v-it/" class="tag-cloud-link tag-link-292 tag-link-position-36" style="font-size: 9.9444444444444pt;" aria-label="карьера в IT (18 элементов)" data-wpel-link="internal">карьера в IT</a>
<a href="https://otus.ru/journal/tag/podborka/" class="tag-cloud-link tag-link-7 tag-link-position-37" style="font-size: 12.666666666667pt;" aria-label="подборка (35 элементов)" data-wpel-link="internal">подборка</a>
<a href="https://otus.ru/journal/tag/podborka-statej/" class="tag-cloud-link tag-link-219 tag-link-position-38" style="font-size: 15.777777777778pt;" aria-label="подборка статей (75 элементов)" data-wpel-link="internal">подборка статей</a>
<a href="https://otus.ru/journal/tag/programmirovanie/" class="tag-cloud-link tag-link-65 tag-link-position-39" style="font-size: 22pt;" aria-label="программирование (332 элемента)" data-wpel-link="internal">программирование</a>
<a href="https://otus.ru/journal/tag/proekt/" class="tag-cloud-link tag-link-321 tag-link-position-40" style="font-size: 11.888888888889pt;" aria-label="проект (29 элементов)" data-wpel-link="internal">проект</a>
<a href="https://otus.ru/journal/tag/proektnaya-rabota/" class="tag-cloud-link tag-link-310 tag-link-position-41" style="font-size: 11.597222222222pt;" aria-label="проектная работа (27 элементов)" data-wpel-link="internal">проектная работа</a>
<a href="https://otus.ru/journal/tag/seti/" class="tag-cloud-link tag-link-181 tag-link-position-42" style="font-size: 12.958333333333pt;" aria-label="сети (38 элементов)" data-wpel-link="internal">сети</a>
<a href="https://otus.ru/journal/tag/testirovanie/" class="tag-cloud-link tag-link-69 tag-link-position-43" style="font-size: 13.930555555556pt;" aria-label="тестирование (48 элементов)" data-wpel-link="internal">тестирование</a>
<a href="https://otus.ru/journal/tag/upravlenie-komandoj/" class="tag-cloud-link tag-link-63 tag-link-position-44" style="font-size: 11.694444444444pt;" aria-label="управление командой (28 элементов)" data-wpel-link="internal">управление командой</a>
<a href="https://otus.ru/journal/tag/habr-2/" class="tag-cloud-link tag-link-203 tag-link-position-45" style="font-size: 13.930555555556pt;" aria-label="хабр (48 элементов)" data-wpel-link="internal">хабр</a></div>
</li>
</ul>
</div>
</aside>
</div> <!-- .ts-row -->
</div> <!-- .main -->
<footer class="main-footer dark bold">
<section class="lower-footer cf">
<div class="wrap">
<div class="links">
<div class="menu-menju-navykov-container"><ul id="menu-menju-navykov-1" class="menu"><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10413"><a href="https://otus.ru/categories/programming/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Программирование<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10414"><a href="https://otus.ru/categories/architecture/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Архитектура<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10415"><a href="https://otus.ru/categories/operations/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Инфраструктура<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10416"><a href="https://otus.ru/categories/information-security-courses/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Безопасность<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10417"><a href="https://otus.ru/categories/data-science/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Data Science<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10418"><a href="https://otus.ru/categories/gamedev/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">GameDev<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10419"><a href="https://otus.ru/categories/marketing-business/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Управление<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10420"><a href="https://otus.ru/categories/analytics/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Аналитика и анализ<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10421"><a href="https://otus.ru/categories/testing/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Тестирование<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
</ul></div> </div>
<p class="copyright"> © 2015-2026 OTUS </p>
<div class="to-top">
<a href="#" class="back-to-top"><i class="fa fa-angle-up"></i> Top</a>
</div>
</div>
</section>
</footer>
</div> <!-- .main-wrap -->
<div class="mobile-menu-container off-canvas" id="mobile-menu">
<a href="#" class="close"><i class="fa fa-times"></i></a>
<div class="logo">
</div>
<ul class="mobile-menu"></ul>
</div>
<div class="search-modal-wrap">
<div class="search-modal-box" role="dialog" aria-modal="true">
<form method="get" class="search-form" action="https://otus.ru/journal/">
<input type="search" class="search-field" name="s" placeholder="Search..." value="" required />
<button type="submit" class="search-submit visuallyhidden">Submit</button>
<p class="message">
Type above and press <em>Enter</em> to search. Press <em>Esc</em> to cancel. </p>
</form>
</div>
</div>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/plugins/clearfy/components/comments-plus/assets/js/url-span.js" id="wbcr-comments-plus-url-span-js"></script>
<script type="text/javascript" id="ez-toc-scroll-scriptjs-js-extra">
/* <![CDATA[ */
var eztoc_smooth_local = {"scroll_offset":"30"};
/* ]]> */
</script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/plugins/easy-table-of-contents/assets/js/smooth_scroll.min.js" id="ez-toc-scroll-scriptjs-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/plugins/easy-table-of-contents/vendor/js-cookie/js.cookie.min.js" id="ez-toc-js-cookie-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/plugins/easy-table-of-contents/vendor/sticky-kit/jquery.sticky-kit.min.js" id="ez-toc-jquery-sticky-kit-js"></script>
<script type="text/javascript" id="ez-toc-js-js-extra">
/* <![CDATA[ */
var ezTOC = {"smooth_scroll":"1","visibility_hide_by_default":"","scroll_offset":"30","fallbackIcon":"<span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span>"};
/* ]]> */
</script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/plugins/easy-table-of-contents/assets/js/front.min.js" id="ez-toc-js-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/custom-script.js" id="custom-script-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/magnific-popup.js" id="magnific-popup-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/jquery.fitvids.js" id="jquery-fitvids-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-includes/js/imagesloaded.min.js" id="imagesloaded-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/object-fit-images.js" id="object-fit-images-js"></script>
<script type="text/javascript" id="contentberg-theme-js-extra">
/* <![CDATA[ */
var Bunyad = {"custom_ajax_url":"\/journal\/mnozhestva-opredelenie-znachimost-primenenie-v-programmirovanii\/"};
/* ]]> */
</script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/theme.js" id="contentberg-theme-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/theia-sticky-sidebar.js" id="theia-sticky-sidebar-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/jquery.slick.js" id="jquery-slick-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/jarallax.js" id="jarallax-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-includes/js/masonry.min.js" id="masonry-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-includes/js/jquery/jquery.masonry.min.js" id="jquery-masonry-js"></script>
</body>
</html>
<!-- Cache served by breeze CACHE - Last modified: Tue, 10 Mar 2026 22:40:16 GMT -->