Добавить в корзинуПозвонить
Найти в Дзене
Art Libra

Галактика знаний - 1002 - Множества и элементы – вездесущая упаковка

«Множество – это когда много вещей мыслятся как одно целое»
— Георг Кантор (неформально) На прошлом уроке мы познакомились с векторами – «пакетами чисел», которые умеют складываться и умножаться на числа. Но числа сами по себе – это лишь один из видов «элементов». Чтобы строить математические модели любых явлений, нам нужна ещё более простая и фундаментальная концепция: множество. Это самый первый кирпичик, из которого складывается всё здание математики, а через неё – и всей галактики знаний. Сегодня мы: Важное правило соблюдается: ни одно понятие не будет использовано до того, как мы его объясним. Все новые термины вводятся через интуицию и примеры. Вы уже знаете, что такое «куча», «набор», «коллекция». В математике вместо этих слов используют слово множество. Неформальное определение. Множество – это собрание любых объектов, объединённых по какому-то признаку или просто перечисленных. Каждый объект, входящий в это собрание, называется элементом множества. Примеры из жизни: Математика
Оглавление

«Множество – это когда много вещей мыслятся как одно целое»
— Георг Кантор (неформально)

На прошлом уроке мы познакомились с векторами – «пакетами чисел», которые умеют складываться и умножаться на числа. Но числа сами по себе – это лишь один из видов «элементов». Чтобы строить математические модели любых явлений, нам нужна ещё более простая и фундаментальная концепция: множество. Это самый первый кирпичик, из которого складывается всё здание математики, а через неё – и всей галактики знаний.

Сегодня мы:

  • Узнаем, что такое множество и элемент (очень просто, почти очевидно).
  • Увидим, как эта простая идея проявляется в физике, биологии, социологии, программировании, лингвистике и даже в искусстве.
  • Познакомимся с операциями над множествами (объединение, пересечение, разность) и обнаружим, что они описывают реальные процессы: от смешивания газов до поиска документов.
  • Напишем код на Python, где множества есть прямо встроенный тип данных set, и выполним на них те же операции, что и в математике.
  • Заглянем в будущее: узнаем, как множества связаны с теорией категорий (пока только намёк).

Важное правило соблюдается: ни одно понятие не будет использовано до того, как мы его объясним. Все новые термины вводятся через интуицию и примеры.

1. Интуиция: что такое множество?

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

Неформальное определение. Множество – это собрание любых объектов, объединённых по какому-то признаку или просто перечисленных. Каждый объект, входящий в это собрание, называется элементом множества.

Примеры из жизни:

  • Множество всех планет Солнечной системы (элементы: Меркурий, Венера, Земля, …).
  • Множество гласных букв русского алфавита (а, е, ё, и, о, у, ы, э, ю, я).
  • Множество студентов в вашей группе.
  • Множество всех возможных исходов броска игральной кости {1,2,3,4,5,6}.

Математика говорит: если мы можем однозначно сказать, принадлежит ли объект множеству или нет, то множество определено.

-2

В Python мы будем пользоваться перечислением (явным списком) и операциями, которые работают с такими списками.

2. Множества в разных рукавах галактики

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

2.1 Физика

В классической механике состояние частицы задаётся её положением и импульсом. Все возможные состояния образуют множество – фазовое пространство. Каждое конкретное состояние – элемент этого множества.

В квантовой механике у частицы есть множество возможных результатов измерения. Например, при измерении спина электрона множество возможных исходов: {«вверх», «вниз»}.

В классической термодинамике множество микросостояний бесконечно (непрерывно). Однако при квантовом описании фазовое пространство разбивается на ячейки размером h^(3N), где N - количество частиц. Число различимых микросостояний становится конечным для системы в конечном объёме. В статистической физике мы часто используем объём фазового пространства, который непрерывен, но при подсчёте энтропии по Больцману переходим к суммированию по квантовым состояниям.

-3

2.2 Биология: виды, гены, особи

Множество видов животных в лесу. Множество генов в геноме человека (около 20 тысяч). Множество особей в популяции. Операции над множествами помогают описывать:

  • Пересечение: животные, которые живут и в лесу, и в реке (например, бобры).
  • Объединение: все виды, обитающие в двух соседних заповедниках.
  • Разность: виды, которые есть в заповеднике А, но нет в заповеднике Б.

2.3 Социология и экономика: группы людей

Множество жителей города. Множество клиентов банка. Множество покупателей, купивших товар X. Пересечение множеств – это, например, «женщины старше 30 лет, имеющие высшее образование, которые купили товар Y». Рекламные таргетинги основаны на пересечении множеств.

2.4 Лингвистика: словарь и текст

Множество всех слов языка (лексикон). Множество слов, встретившихся в конкретном тексте. Пересечение словарей двух текстов – слова, общие для обоих. Разность – слова, которые есть в первом тексте, но отсутствуют во втором.

2.5 Программирование: типы данных и коллекции

В Python тип set – это прямое воплощение математического множества. Также любой тип данных (например, int, str) можно рассматривать как множество всех возможных значений этого типа. Переменная, хранящая конкретное значение, – это элемент этого множества.

2.6 Искусство: палитра цветов

Множество цветов, использованных художником. Множество нот в музыкальном произведении. Множество инструментов в оркестре. Пересечение палитр двух картин – общие цвета. Объединение – все цвета, использованные в обеих.

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

Теперь введём три простейшие операции. Они понадобятся нам не только в математике, но и во всех перечисленных областях.

-4
-5
-6

4. Первый шаг к теории категорий (интуиция)

Пока без сложных определений. Теория категорий начинается с того, что мы смотрим не только на сами множества, но и на функции (отображения) между ними. Функция – это правило, которое каждому элементу одного множества ставит в соответствие элемент другого множества. В следующих уроках мы будем много работать с функциями. (Обычно мы употребляем слово "функция" когда говорим о числовых множествах, а "отображение" о нечисловых - слова, молекулы, буквы и т. п.).

Почему это важно? Потому что, когда мы хотим перевести знание из одной области науки в другую, мы на самом деле строим функцию из одного множества понятий в другое. Например, функция, которая каждому слову ставит в соответствие его длину – это отображение из множества слов во множество натуральных чисел. А функция, которая каждой молекуле газа ставит в соответствие её скорость, – это отображение из множества молекул в множество векторов скорости.

Категория множеств (называется Set) имеет своими объектами множества, а стрелками – функции. Пока нам достаточно знать, что такие «переходы» между множествами играют центральную роль. Мы вернёмся к этому на уроке, посвящённом функциям и категориям.

-7

5. Программирование на Python: множество как set

Python имеет встроенный тип set. Он поддерживает все операции, которые мы обсуждали. Сейчас мы напишем код, который сначала работает с абстрактными числовыми множествами, а затем смоделирует пример из реальной области.

5.1 Базовые операции на числах

# Определяем два множества
A = {1, 2, 3}
B = {2, 3, 4}

# Объединение
union = A | B # или A.union(B)
print("Объединение:", union)

# Пересечение
intersection = A & B # или A.intersection(B)
print("Пересечение:", intersection)

# Разность
diff_AB = A - B # или A.difference(B)
print("A без B:", diff_AB)
diff_BA = B - A
print("B без A:", diff_BA)

# Проверка на пустоту
C = set() # пустое множество
print("Пусто ли C?", len(C) == 0) # или C == set()

Вывод:

Объединение: {1, 2, 3, 4}
Пересечение: {2, 3}
A без B: {1}
B без A: {4}
Пусто ли C? True

5.2 Пример из лингвистики: общие слова в двух текстах

Смоделируем два простых предложения. Разобьём их на слова (пока по пробелам, без учёта знаков препинания). Найдём пересечение – слова, которые встречаются в обоих текстах.

text1 = "кот любит молоко"
text2 = "кот любит рыбу"
# Разбиваем на множества слов
words1 = set(text1.split())
words2 = set(text2.split())
print("Слова в первом тексте:", words1)
print("Слова во втором тексте:", words2)
common = words1 & words2
print("Общие слова:", common)
only_in_first = words1 - words2
print("Только в первом:", only_in_first)
only_in_second = words2 - words1
print("Только во втором:", only_in_second)

Вывод:

Слова в первом тексте: {'молоко', 'любит', 'кот'}
Слова во втором тексте: {'рыбу', 'любит', 'кот'}
Общие слова: {'любит', 'кот'}
Только в первом: {'молоко'}
Только во втором: {'рыбу'}

Это основа для поисковых систем: по запросу «кот молоко» ищут пересечение множества документов, содержащих «кот», и множества, содержащих «молоко».

5.3 Пример из биологии: обитатели двух сред

Пусть у нас есть множество видов в лесу и множество видов в реке. Найдём виды, которые живут и там, и там (например, бобры, выдры).

forest = {"медведь", "волк", "бобр", "лось", "выдра"}
river = {"бобр", "выдра", "щука", "окунь"}
common_species = forest & river
print("Виды, обитающие и в лесу, и в реке:", common_species)

Вывод:

Виды, обитающие и в лесу, и в реке: {'бобр', 'выдра'}

Это полезно для экологов, изучающих переходные зоны.

5.4 Пример из физики (модельный): возможные состояния кубита

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

measurement_outcomes = {"up", "down"}
# Но в квантовой механике есть ещё множество возможных состояний до измерения:
# это бесконечное множество (все векторы на сфере Блоха), но мы его не можем перечислить.
# Тем не менее, мы можем описать его свойством: "все нормированные векторы в C^2".

Здесь множество задаётся не перечислением, а свойством. Python не позволяет создать бесконечное множество, но мы можем работать с конечными подмножествами.

-8

6. Зачем всё это? Мостик к будущему

Множества – это самый простой кирпичик. Но вскоре мы начнём наделять множества дополнительной структурой. Например, когда мы ввели векторные пространства, то фактически сказали: «Возьмём некоторое множество, определим на нём операцию сложения и умножения на число, и потребуем выполнения определённых правил». То есть векторное пространство – это множество плюс структура.

Аналогично, любая математическая теория (группы, топологические пространства, категории) строятся на множествах, но добавляют к ним стрелки, отношения, операции.

6.1 Лирическое отступление. Группы.

Группа как алгебраическая структура — это множество объектов (элементов) вместе с определённой операцией, которая «связывает» эти элементы, подчиняясь четырём простым правилам.

Ключевые правила (аксиомы) группы:

  1. Замкнутость
    Результат операции всегда остаётся внутри множества.
    Пример: сумма двух целых чисел — тоже целое число.
  2. Ассоциативность
    Порядок группировки элементов не важен.
    Пример: (2 + 3) + 4 = 2 + (3 + 4).
  3. Нейтральный (единичный) элемент
    Есть элемент, который «не меняет» другие при операции.
    Пример: для сложения это 0 (5 + 0 = 5).
  4. Обратные элементы
    Для каждого элемента есть «противоположный», «отменяющий» его действие.
    Пример: для числа 5 обратный элемент −5 (5 + (−5) = 0).

Примеры групп

  • Целые числа с сложением.
    Сумма любых двух целых чисел — целое; 0 — нейтральный элемент; для числа
    a обратный — −a.
  • Рациональные числа (без нуля) с умножением.
    Произведение двух рациональных чисел — рациональное; 1 — нейтральный элемент; обратный к
    a — 1/a.
  • Повороты квадрата на 0°, 90°, 180°, 270°.
    Операция — последовательное выполнение поворотов; нейтральный элемент — поворот на 0°; каждый поворот обратим (например, поворот на 90° «отменяется» поворотом на 270°).
  • Группа симметрии фигуры — все преобразования (повороты, отражения), которые оставляют фигуру неизменной.

Краткий смысл

Группа описывает, как элементы «взаимодействуют» друг с другом, сохраняя определённые свойства. Это позволяет изучать симметрии (в геометрии, химии, физике), структуры уравнений (в теории Галуа) и многое другое.

Коротко:
Группа = множество + операция → замкнута, ассоциативна, имеет нейтральный элемент, все элементы обратимы.

6.2 Лирическое отступление II. Топологическое пространство.

Топологическое пространство — это, грубо говоря, множество точек с «правилами», которые определяют, какие его части считаются «открытыми». Эти «правила» (или топология) позволяют понять, как точки «связаны» друг с другом, не привязываясь к конкретным расстояниям или координатам.

Что это значит простыми словами?

Представьте себе набор точек (например, точки на плоскости, числа, абстрактные объекты). Чтобы превратить этот набор в топологическое пространство, мы решаем, какие группы точек будем считать «открытыми множествами». Эти множества должны подчиняться трём простым правилам:

  1. Само всё множество и пустое множество всегда считаются открытыми.
  2. Если объединить любое количество открытых множеств, результат тоже будет открытым.
  3. Если пересечь конечное число открытых множеств, результат тоже будет открытым.

Зачем это нужно?

Такие «правила» помогают определить:

  • Окрестности (области вокруг точки, которые считаются «ближними»).
  • Непрерывность (как «гладко» одна фигура переходит в другую без разрывов).
  • Связность (можно ли разбить пространство на отдельные «куски»).
  • Компактность (свойство, похожее на «ограниченность и замкнутость» в геометрии).

Примеры

  1. Обычная прямая чисел с интервалами (без границ) как открытыми множествами — простейший пример.
  2. Дискретное пространство: каждое подмножество (даже отдельные точки) считается открытым.
  3. Тривиальное (антидискретное) пространство: открыты только всё множество целиком и пустое множество.
  4. Метрическое пространство (например, евклидова плоскость): открытые множества — шары радиуса ε вокруг точек.

Аналогия

Представьте пластилиновую фигуру. Топология описывает, как её можно деформировать (растягивать, сжимать), но нельзя разрывать или склеивать далёкие части. Чашка и бублик топологически эквивалентны (гомеоморфны), потому что одну можно плавно превратить в другую.

Коротко:
Топологическое пространство = множество + правила, определяющие «открытые» области → позволяет изучать свойства, сохраняющиеся при непрерывных деформациях.

6.3 Лирическое отступление III. Категории

Теория категорий, в свою очередь, изучает не внутреннее устройство множеств (как устроены их элементы), а то, как множества связаны друг с другом через функции. Поэтому в следующем уроке мы перейдём к функциям и отношениям.

Важное замечание: Теория категорий может обойтись и без множеств вообще (существуют ли «категории без объектов»? Не совсем). Но наш путь идёт от множеств, через функции, к категориям. Это естественно для человека, который начинает с основ.

7. Рефлексия: повторяющиеся паттерны

Оглянемся на сегодняшний урок. Мы увидели, что:

  • Одна и та же операция (объединение, пересечение) описывает разные явления: смешивание газов, поиск документов, общие виды в биологии.
  • Множество – это «упаковка», которая позволяет нам игнорировать порядок элементов и сосредоточиться на принадлежности.
  • Python реализует множества прямо «из коробки», и мы написали реальный код, который одинаково работает для чисел, слов, видов.

Это и есть дух нашего курса: находить общее в разном, видеть математическое ядро за многоликостью явлений.

8. Задания для самообучения (выполните в Python)

-9

9. Краткое содержание урока

-10

На следующем уроке: «Функции и отношения: как одно переходит в другое». Мы начнём строить мост от множеств к категориям, изучив правило, которое каждому элементу одного множества сопоставляет элемент другого. И обнаружим, что всюду – от физических законов до экономических зависимостей – работают одни и те же паттерны.