1.1 Знакомство со множествами

Определение множества пришло в программирование из математики. Множество — это группа уникальных элементов. Эта особенность делает множества мощным инструментом в программировании, с множеством уникальных возможностей.

Что такое группа уникальных элементов? Представьте себе «Список 10 самых популярных имен в стране». Сама суть этого определения подразумевает, что каждое имя в списке уникально и не повторяется. Повторяются только его носители.

Или представьте себе коллекцию марок. Вы собираете по одной марке из каждой страны. Ваша коллекция — это множество марок, где каждая марка уникальна, и вы не хотите, чтобы у вас было две одинаковые марки. Вот это и есть идея множества.

Основные характеристики множеств

Уникальность

Множество — это группа уникальных предметов. Представьте, что у вас есть корзина для фруктов, и вы хотите положить в нее яблоки, апельсины и бананы, но у вас не может быть двух одинаковых яблок. Как только вы положили яблоко в корзину, второе такое же яблоко туда не попадет.

Неупорядоченность

Множества не заботятся о порядке предметов. Это как если бы вы складывали фрукты в корзину, не беспокоясь о том, что находится на дне, а что на верху. Главное, что все фрукты в корзине разные.

Изменяемость

Вы можете добавлять и убирать предметы из множества. Это как если бы вы могли в любой момент положить в корзину новый фрукт или убрать оттуда тот, который вам больше не нужен.

1.2 Операции над множествами

Над множествами, как над большими группами элементов, можно проводить различные операции. Вот пример 4 самых распространенных:

  • Объединение (Union): Результат объединения двух множеств включает все уникальные элементы из обоих множеств.
  • Пересечение (Intersection): Результат пересечения двух множеств включает только те элементы, которые присутствуют в обоих множествах.
  • Разность (Difference): Результат разности двух множеств включает элементы, которые присутствуют в первом множестве, но отсутствуют во втором.
  • Симметрическая разность (Symmetric Difference): Результат симметрической разности двух множеств включает элементы, которые присутствуют в одном из множеств, но отсутствуют в обоих одновременно.

Вот хорошая картинка, которая поможет запомнить суть операций:

Объединение (Union):

Результат объединения двух множеств А и B включает все уникальные элементы из обоих множеств.

Пересечение (Intersection):

Результат пересечения двух множеств включает только те элементы, которые присутствуют в обоих множествах.

Разность (Difference):

Результат разности двух множеств включает элементы, которые присутствуют в первом множестве, но отсутствуют во втором.

Симметрическая разность (Symmetric Difference):

Результат симметрической разности двух множеств включает элементы, которые присутствуют либо в одном, либо в другом множестве, но отсутствуют в обоих одновременно.

1.3 Особенности множеств

Множества знамениты не только своими свойствами, но и набором специфических операций над ними.

Уникальные коллекции

Представьте, что вы собираете автографы знаменитостей. Вы хотите, чтобы в вашей коллекции каждый автограф был уникальным. Это значит, что если у вас уже есть автограф любимого актера, вы не будете собирать второй такой же. Ваша коллекция автографов — это множество уникальных автографов.

Удаление дубликатов

Допустим, у вас есть список гостей на вечеринку, но вы случайно записали некоторых людей дважды. Чтобы убедиться, что каждый гость приглашен только один раз, вы можете создать множество гостей. В этом множестве автоматически останутся только уникальные имена, и дубликаты исчезнут.

Проверка на наличие

Представьте, что вы играете в игру, где нужно собирать различные виды сокровищ. В каждом сундуке может быть одно из множества сокровищ. Если вы хотите узнать, нашли ли вы уже определенное сокровище, вы просто проверяете, есть ли оно в вашем множестве сокровищ.

Объединение групп

Представьте, что у вас есть два списка друзей: один из школы, другой из спортклуба. Если вы хотите узнать, со сколькими уникальными людьми вы знакомы, вы можете объединить эти два списка в одно множество. Таким образом, у вас будет список всех уникальных друзей без повторений.