1.1 Основные понятия теории множеств

Основы перечислительной комбиаторики

1.1 Основные понятия теории множеств

модуль 1.1 шаг 3


Пусть X – это множество всех автомобилей, A – множество всех красных автомобилей. Как выглядит дополнение множества A до множества X?

Решение и ответ:

  • Все автомобили кроме красных
  • Зеленые корабли и самолёты
  • Все корабли и самолёты
  • Зеленые автомобили

модуль 1.1 шаг 4


Пусть A – дети, не играющие на кларнете, а B – люди, умеющие плавать.

Кто такие 𝐴∩𝐵?

Решение и ответ

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

модуль 1.1 шаг 5


Пусть А = {1,2,3,4,5,6,7}, В = {4,5,6,7,8,9,10}, С = {2,4,6,8,10}, а U = {1,2,3,4,5,6,7,8,9,10}. Определите (𝐴∪𝐵)∩(𝑈∖𝐶).

В качестве ответа перечислите элементы множества через пробел. Например: 1 2 3 4

Решение

print((A B) & (U - C))

Решение #2

A = {1,2,3,4,5,6,7} B = {4,5,6,7,8,9,10} C = {2,4,6,8,10} U = {1,2,3,4,5,6,7,8,9,10}

1
(A | B) & (U - C)

Ответ

1 3 5 7 9

модуль 1.1 шаг 7


Выберите правильные утверждения:

Решение

  • Разделение - это упорядоченное семейство множеств.
  • Разбиение - это упорядоченное семейство множеств.
  • Разделение не может содержать пустые множества.
  • Разбиение не может содержать пустые множества.
  • Разбиение - это неупорядоченное семейство множеств.
  • Разделение может содержать пустые множества.
  • Упорядоченное разбиение не может содержать пустые множества.
  • Разбиение не может содержать пустые множества.
  • Разбиение может содержать пустые множества.
  • Упорядоченное разбиение может содержать пустые множества.

модуль 1.1 шаг 9


Какие из указанных ниже множеств являются декартовым произведением множеств 𝐴×𝐵, где A = {3, 5} и B = {1, 2}?

Решение

Декартово произведение множеств A и B

Определение: Декартово произведение двух множеств A и B, обозначаемое как A × B, состоит из всех упорядоченных пар элементов из этих множеств.

В данном случае:

  • A = {3, 5}
  • B = {1, 2}

Декартово произведение A × B:

A × B = {(a, b) a ∈ A, b ∈ B}

Рассмотрим каждый из предложенных вариантов:

  1. {(3,1), (3,2), (5,1), (5,2)}:
    • Это верный ответ.
    • Каждый элемент в этом множестве представляет собой упорядоченную пару, где первый элемент принадлежит A, а второй - B.
    • (3,1): 3 принадлежит A, 1 принадлежит B.
    • (3,2): 3 принадлежит A, 2 принадлежит B.
    • (5,1): 5 принадлежит A, 1 принадлежит B.
    • (5,2): 5 принадлежит A, 2 принадлежит B.
  2. {(1,3), (2,5)}:
    • Это неверный ответ.
    • В этой паре элементы перепутаны местами.
    • (1,3): 1 принадлежит B, но не A.
    • (2,5): 2 принадлежит B, но не A.
  3. {(1,3), (1,5), (2,3), (2,5)}:
    • Это неверный ответ.
    • Некоторые элементы в этой паре некорректны.
    • (1,3): 1 принадлежит B, но не A.
    • (1,5): 1 принадлежит B, но не A.
    • (2,3): 2 принадлежит B, но не A.
    • (2,5): 2 принадлежит B, но не A.
  4. {(1,2), (1, 3), (2, 5), (3, 5)}:
    • Это неверный ответ.
    • Некоторые элементы в этой паре некорректны.
    • (1,2): 1 принадлежит B, но не A.
    • (1, 3): 1 принадлежит B, но не A.
    • (2, 5): 2 принадлежит B, но не A.
    • (3, 5): 5 принадлежит A, но 5 не B.

Таким образом, единственным верным ответом является {(3,1), (3,2), (5,1), (5,2)}.

Пример реализации в C++:

C++

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream>
#include <vector>

using namespace std;

int main() {
  // Множества A и B
  vector<int> A = {3, 5};
  vector<int> B = {1, 2};

  // Декартово произведение A и B
  vector<pair<int, int>> cartesianProduct;

  for (int a : A) {
    for (int b : B) {
      cartesianProduct.push_back({a, b});
    }
  }

  // Вывод декартова произведения
  cout << "Декартово произведение A x B: ";
  for (pair<int, int> p : cartesianProduct) {
    cout << "(" << p.first << ", " << p.second << ") ";
  }

  return 0;
}

В этом коде:

  1. Определяются два вектора
    1
    
    A
    
    и
    1
    
    B
    
    для представления множеств A и B.
  2. Пустой вектор
    1
    
    cartesianProduct
    
    создается для хранения декартова произведения.
  3. Вложенные циклы
    1
    
    for
    
    перебирают все элементы множеств A и B.
  4. Для каждой пары элементов (a, b) из A и B создается пара
    1
    
    (a, b)
    
    и добавляется в
    1
    
    cartesianProduct
    
    .
  5. В конце декартово произведение выводится в виде
    1
    
    (a, b)
    
    .

Ответ

  • {(1,2), (1, 3), (2, 5), (3, 5)}
  • {(5,1), (5,2), (3,1), (3,2) }
  • {(3,1), (3,2), (5,1), (5,2)}
  • {(1,3), (2,5)}

модуль 1.1 шаг 10


Какие из представленных множеств могут быть результатом декартова произведения каких-либо двух множеств?

Решение

  1. A = {(1)}, B = {(1)} => A x B = {(1,1) : 1 ∈ A, 1 ∈ B}

2) A = {(1)}, B = {(3)} => A x B = {(1,3) : 1 ∈ A, 3 ∈ B} 3) A = {(1)}, B = {(1,3)} => A x B = {(1,1), (1,3) : 1 ∈ A, 1,3 ∈ B} 4) A = {(1,2)}, B = {(2,3)} => A x B = {(1,2), (1,3), (2,2), (2,3) : 1,2 ∈ A, 2,3 ∈ B => A x B = {(1,2), (2,3), (2, 2), (1, 3) : 1,2 ∈ A, 2,3 ∈ B}

Ответ

  • {(1,2), (2,3), (2, 2), (1, 3)}
  • {(1,1)}
  • {(1,3)}
  • {(1,3), (1,1)}
  • {(5,1), (5,2), (3,1), (3,2) }
  • {(3,1), (3,2), (5,1), (5,2)}