1.1 Знакомство со множествами
Определение множества пришло в программирование из математики. Множество — это группа уникальных элементов. Эта особенность делает множества мощным инструментом в программировании, с множеством уникальных возможностей.
Что такое группа уникальных элементов? Представьте себе «Список 10 самых популярных имен в стране». Сама суть этого определения подразумевает, что каждое имя в списке уникально и не повторяется. Повторяются только его носители.
Или представьте себе коллекцию марок. Вы собираете по одной марке из каждой страны. Ваша коллекция — это множество марок, где каждая марка уникальна, и вы не хотите, чтобы у вас было две одинаковые марки. Вот это и есть идея множества.
Основные характеристики множеств
Уникальность
Множество — это группа уникальных предметов. Представьте, что у вас есть корзина для фруктов, и вы хотите положить в нее яблоки, апельсины и бананы, но у вас не может быть двух одинаковых яблок. Как только вы положили яблоко в корзину, второе такое же яблоко туда не попадет.
Неупорядоченность
Множества не заботятся о порядке предметов. Это как если бы вы складывали фрукты в корзину, не беспокоясь о том, что находится на дне, а что на верху. Главное, что все фрукты в корзине разные.
Изменяемость
Вы можете добавлять и убирать предметы из множества. Это как если бы вы могли в любой момент положить в корзину новый фрукт или убрать оттуда тот, который вам больше не нужен.
1.2 Операции над множествами
Над множествами, как над большими группами элементов, можно проводить различные операции. Вот пример 4 самых распространенных:
- Объединение (Union): Результат объединения двух множеств включает все уникальные элементы из обоих множеств.
- Пересечение (Intersection): Результат пересечения двух множеств включает только те элементы, которые присутствуют в обоих множествах.
- Разность (Difference): Результат разности двух множеств включает элементы, которые присутствуют в первом множестве, но отсутствуют во втором.
- Симметрическая разность (Symmetric Difference): Результат симметрической разности двух множеств включает элементы, которые присутствуют в одном из множеств, но отсутствуют в обоих одновременно.
Вот хорошая картинка, которая поможет запомнить суть операций:
Объединение (Union):
Результат объединения двух множеств А и B включает все уникальные элементы из обоих множеств.
Пересечение (Intersection):
Результат пересечения двух множеств включает только те элементы, которые присутствуют в обоих множествах.
Разность (Difference):
Результат разности двух множеств включает элементы, которые присутствуют в первом множестве, но отсутствуют во втором.
Симметрическая разность (Symmetric Difference):
Результат симметрической разности двух множеств включает элементы, которые присутствуют либо в одном, либо в другом множестве, но отсутствуют в обоих одновременно.
1.3 Особенности множеств
Множества знамениты не только своими свойствами, но и набором специфических операций над ними.
Уникальные коллекции
Представьте, что вы собираете автографы знаменитостей. Вы хотите, чтобы в вашей коллекции каждый автограф был уникальным. Это значит, что если у вас уже есть автограф любимого актера, вы не будете собирать второй такой же. Ваша коллекция автографов — это множество уникальных автографов.
Удаление дубликатов
Допустим, у вас есть список гостей на вечеринку, но вы случайно записали некоторых людей дважды. Чтобы убедиться, что каждый гость приглашен только один раз, вы можете создать множество гостей. В этом множестве автоматически останутся только уникальные имена, и дубликаты исчезнут.
Проверка на наличие
Представьте, что вы играете в игру, где нужно собирать различные виды сокровищ. В каждом сундуке может быть одно из множества сокровищ. Если вы хотите узнать, нашли ли вы уже определенное сокровище, вы просто проверяете, есть ли оно в вашем множестве сокровищ.
Объединение групп
Представьте, что у вас есть два списка друзей: один из школы, другой из спортклуба. Если вы хотите узнать, со сколькими уникальными людьми вы знакомы, вы можете объединить эти два списка в одно множество. Таким образом, у вас будет список всех уникальных друзей без повторений.