C множества: что это такое и как с ними работать
Руководство C# | Множества: классы HashSet и SortedSet
Мы запустили ТГ-канал по урокам C#
Toggle navigation
Professor Web
- C# 5.0 и .NET 4.5
- Руководство C# — Часть 1
- Руководство C# — Часть 2
- Основы .NET
- Сборки .NET
- Потоки и файлы
- Работа с сетью
- Оптимизация приложений
- WPF
- Основа WPF
- Элементы управления WPF
- Привязка и стили
- Графика и анимация
- Шаблоны WPF
- Периферия WPF
- Темы WPF
- Dark Blue UI
- Dark Orange UI
- Silverlight 5
- Работа с БД
- ADO.NET
- Entity Framework 6
- SQL Server 2012
- Оконные функции
- LINQ
- LINQ to Objects
- LINQ to XML
- LINQ to DataSet и SQL
- LINQ to Entities
- Parallel LINQ
- ASP.NET
- Основы ASP.NET
- Веб-сайты
- Безопасность
- Интернет магазин
- ASP.NET Web Forms 4.5
- ASP.NET MVC 5
- Аутентификация
- Windows 8/10
- WinRT — основы
Операции над множествами
Предварительные навыки
Пересечение множеств
Рассмотрим два множества: множество друзей Джона и множество друзей Майкла.
Друзья Джона = { | Том, Фред, Макс, Джорж } |
Друзья Майкла = { | Лео, Том, Фред, Эван } |
Видим, что Том и Фред одновременно являются друзьями Джона и Майкла.
Говоря на языке множеств, элементы Том и Фред принадлежат как множеству друзей Джона, так и множеству друзей Майкла.
Зададим новое множество с названием «Общие друзья Джона и Майкла» и в качестве элементов добавим в него Тома и Фреда:
Общие друзья Джона и Майкла | = { Том, Фред } |
В данном случае множество «Общие друзья Джона и Майкла» является пересечением множеств друзей Джона и Майкла.
Пересечением двух (или нескольких) исходных множеств называется множество, которое состоит из элементов, принадлежащих каждому из исходных множеств.
В нашем случае элементы Том и Фред принадлежат каждому из исходных множеств, а именно: множеству друзей Джона и множеству друзей Майкла.
Обозначим множество друзей Джона через букву A, множество друзей Майкла — через букву B, а множество общих друзей Джона и Майкла обозначим через букву C:
A = { Том, Фред, Макс, Джордж }
B = { Лео, Том, Фред, Эван }
C = { Том, Фред }
Тогда пересечением множеств A и B будет множество C и записываться следующим образом:
A ∩ B = C
Символ ∩ означает пересечение.
Говоря о множестве, обычно подразумевают элементы, принадлежащие этому множеству. Символ пересечения ∩ читается, как союз И. Тогда выражение A ∩ B = C можно прочитать следующим образом:
«Элементы, принадлежащие множеству A И множеству B, есть элементы, принадлежащие множеству C».
Или еще проще:
«Друзья, одновременно принадлежащие Джону И Майклу, есть общие друзья Джона и Майкла».
Теперь представим, что у Джона и Майкла нет общих друзей. Для удобства, как и прежде обозначим множество друзей Джона через букву A, а множество друзей Майкла через букву B
A = { Макс, Джордж }
B = { Лео, Эван }
В этом случае говорят, что исходные множества не имеют общих элементов и пересечением таких множеств является пустое множество. Пустое множество обозначается символом ∅
A ∩ B = ∅
Пример 2. Рассмотрим два множества: множество A, состоящее из чисел 1, 2, 3, 5, 7 и множество B, состоящее из чисел 1, 2, 3, 4, 6, 12, 18
A = { 1, 2, 3, 5, 7 }
B = { 1, 2, 3, 4, 6, 12, 18 }
Зададим новое множество C и добавим в него элементы, которые одновременно принадлежат множеству A и множеству B
C = { 1, 2, 3 }
Множество С является пересечением множеств A и B, поскольку элементы множества C одновременно принадлежат множеству A и множеству B
Пример 3. Рассмотрим два множества: множество A, состоящее из чисел 1, 5, 7, 9 и множество B, состоящее из чисел 1, 4, 5, 7
A = { 1, 5, 7, 9 }
B = { 1, 4, 5, 7 }
Зададим новое множество C и добавим в него элементы, которые одновременно принадлежат множеству A и множеству B
C = { 1, 5, 7 }
Множество С является пересечением множеств A и B, поскольку элементы множества C одновременно принадлежат множеству A и множеству B.
Пример 4. Найти пересечение следующих множеств:
A = { 1, 2, 3, 7, 9 }
B = { 1, 3, 5, 7, 9}
С = { 3, 4, 5, 8, 9}
Пересечением множеств A, B и C будет множество, состоящее из элементов, принадлежащих каждому из множеств A, B и C. Этими элементами являются числа 3 и 9.
Зададим новое множество D и добавим в него элементы 3 и 9. Затем с помощью символа пересечения ∩ запишем, что пересечением множеств A, B и C является множество D
D = { 3, 9}
A ∩ B ∩ C = D
Чтобы найти пересечение, вовсе необязательно задавать множества с помощью букв. Если элементов мало, то множество можно задать прямым перечислением элементов.
К примеру, пусть первое множество состоит из элементов 1, 3, 5, а второе из элементов 2, 3, 5. Пересечением в данном случае является множество, состоящее из элементов 3 и 5. Чтобы записать пересечение, можно воспользоваться прямым перечислением:
{ 1, 3, 5 } ∩ { 2, 3, 5 } = { 3, 5 }
Числовые промежутки, которые мы рассмотрели в предыдущих уроках, тоже являются множествами. Элементами таких множеств являются числа, входящие в числовой промежуток.
Например, отрезок [2; 6] можно понимать, как множество всех чисел от 2 до 6. Для наглядности можно перечислить все целые числа, принадлежащие данному отрезку:
2, 3, 4, 5, 6 ∈ [2; 6]
Следует иметь ввиду, что мы перечислили только целые числа. Отрезку [2; 6] также принадлежат и другие числа, не являющиеся целыми, например, десятичные дроби. Десятичные дроби располагаются между целыми числами, но их количество настолько велико, что перечислить их не представляется возможным.
Еще пример. Интервал (2; 6) можно понимать, как множество всех чисел от 2 до 6, кроме чисел 2 и 6. Ранее мы говорили, что интервал это такой числовой промежуток, границы которого не принадлежат ему. Для наглядности можно перечислить все целые числа, принадлежащие интервалу (2; 6):
3, 4, 5 ∈ (2; 6)
Поскольку числовые промежутки являются множествами, то мы можем находить пересечения между различными числовыми промежутками. Рассмотрим несколько примеров.
Пример 5. Даны два числовых промежутка: [2; 6] и [4; 8]. Найти их пересечение.
Оба промежутка обрамлены квадратными скобками, значит их границы принадлежат им.
Для наглядности перечислим все целые числа, принадлежащие промежуткам [2; 6] и [4; 8]:
2, 3, 4, 5, 6 ∈ [2; 6]
4, 5, 6, 7, 8 ∈ [4; 8]
Видно, что числа 4, 5, 6 принадлежат как первому промежутку [2; 6], так и второму [4; 8].
Тогда пересечением числовых промежутков [2; 6] и [4; 8] будет числовой промежуток [4; 6]
[2; 6] ∩ [4; 8] = [4; 6]
Изобразим промежутки [2; 6] и [4; 8] на координатной прямой. На верхней области отметим числовой промежуток [2; 6], на нижней — промежуток [4; 8]
Видно, что числа, принадлежащие промежутку [4; 6], принадлежат как промежутку [2; 6], так и промежутку [4; 8]. Можно также заметить, что штрихи, входящие в промежутки [2; 6] и [4; 8] пересекаются в промежутке [4; 6]. В такой ситуации, когда перед глазами есть координатная прямая, понятие пересечения множеств можно понимать в прямом смысле, что очень удобно.
Пример 6. Найти пересечение числовых промежутков [−2; 3] и [4; 7]
Оба промежутка обрамлены квадратными скобками, значит их границы принадлежат им.
Для наглядности перечислим все целые числа, принадлежащие промежуткам [−2; 3] и [4; 7]:
−2, −1, 0, 1, 2, 3 ∈ [−2; 3]
4, 5, 6, 7 ∈ [4; 7]
Видно, что числовые промежутки [−2; 3] и [4; 7] не имеют общих чисел. Поэтому их пересечением будет пустое множество:
[−2; 3] ∩ [4; 7] = Ø
Если изобразить числовые промежутки [−2; 3] и [4; 7] на координатной прямой, то можно увидеть, что они нигде не пересекаются:
Пример 7. Дано множество из одного элемента { 2 }. Найти его пересечение с промежутком (−3; 4)
Множество, состоящее из одного элемента { 2 }, на координатной прямой изображается в виде закрашенного кружка, а числовой промежуток (−3; 4) это интервал, границы которого не принадлежат ему. Значит границы −3 и 4 будут изображаться в виде пустых кружков:
Пересечением множества { 2 } и числового промежутка (−3; 4) будет множество, состоящее из одного элемента { 2 }, поскольку элемент 2 принадлежит как множеству { 2 }, так и числовому промежутку (−3; 4)
{ 2 } ∩ (−3; 4) = { 2 }
На самом деле мы уже занимались пересечением числовых промежутков, когда решали системы линейных неравенств. Вспомните, как мы решали их. Сначала находили множество решений первого неравенства, затем множество решений второго. Затем находили множество решений, которые удовлетворяют обоим неравенствам.
По сути, множество решений, удовлетворяющих обоим неравенствам, является пересечением множеств решений первого и второго неравенства. Роль этих множеств берут на себя числовые промежутки.
Например, чтобы решить систему неравенств , мы должны сначала найти множества решений каждого неравенства, затем найти пересечение этих множеств.
В данном примере решением первого неравенства x ≥ 3 является множество всех чисел, которые больше 3 (включая само число 3). Иначе говоря, решением неравенства является числовой промежуток [3; +∞)
Решением второго неравенства x ≤ 6 является множество всех чисел, которые меньше 6 (включая само число 6). Иначе говоря, решением неравенства является числовой промежуток (−∞; 6]
А общим решением системы будет пересечение множеств решений первого и второго неравенства, то есть пересечение числовых промежутков [3; +∞) и (−∞; 6]
Если мы изобразим множество решений системы на координатной прямой, то увидим, что эти решения принадлежат промежутку [3; 6], который в свою очередь является пересечением промежутков [3; +∞) и (−∞; 6]
[3; +∞) ∩ (−∞; 6] = [3; 6]
Поэтому в качестве ответа мы указывали, что значения переменной x принадлежат числовому промежутку [3; 6], то есть пересечению множеств решений первого и второго неравенства
x ∈ [3; 6]
Пример 2. Решить неравенство
Все неравенства, входящие в систему уже решены. Нужно только указать те решения, которые являются общими для всех неравенств.
Решением первого неравенства является числовой промежуток (−∞; −1).
Решением второго неравенства является числовой промежуток (−∞; −5).
Решением третьего неравенства является числовой промежуток (−∞; 4).
Решением системы будет пересечение числовых промежутков (−∞; −1), (−∞; −5) и (−∞; 4). В данном случае этим пересечением является промежуток (−∞; −5).
(−∞; −1) ∩ (−∞; −5) ∩ (−∞; 4) = (−∞; −5)
На рисунке представлены числовые промежутки и неравенства, которыми эти числовые промежутки заданы. Видно, что числа, принадлежащие промежутку (−∞; −5), одновременно принадлежат всем исходным промежуткам.
Запишем ответ к системе с помощью числового промежутка:
x ∈ (−∞; −5)
Пример 3. Решить неравенство
Решением первого неравенства y > 7 является числовой промежуток (7; +∞).
Решением второго неравенства y < 4 является числовой промежуток (−∞; 4).
Решением системы будет пересечение числовых промежутков (7; +∞) и (−∞; 4).
В данном случае пересечением числовых промежутков (7; +∞) и (−∞; 4) является пустое множество, поскольку эти числовые промежутки не имеют общих элементов:
(7; +∞) ∩ (−∞; 4) = ∅
Если изобразить числовые промежутки (7; +∞) и (−∞; 4) на координатной прямой, то можно увидеть, что они нигде не пересекаются:
Объединение множеств
Объединением двух (или нескольких) исходных множеств называют множество, которое состоит из элементов, принадлежащих хотя бы одному из исходных множеств.
На практике объединение множеств состоит из всех элементов, принадлежащих исходным множествам. Поэтому и говорят, что элементы такого множества принадлежат хотя бы одному из исходных множеств.
Рассмотрим множество A с элементами 1, 2, 3 и множество B с элементами 4, 5, 6.
A = { 1, 2, 3 }
B = { 4, 5, 6 }
Зададим новое множество C и добавим в него все элементы множества A и все элементы множества B
C = { 1, 2, 3, 4, 5, 6 }
В данном случае объединением множеств A и B является множество C и обозначается следующим образом:
A ∪ B = C
Символ ∪ означает объединение и заменяет собой союз ИЛИ. Тогда выражение A ∪ B = C можно прочитать так:
Элементы, принадлежащие множеству A ИЛИ множеству B, есть элементы, принадлежащие множеству C.
В определении объединения сказано, что элементы такого множества принадлежат хотя бы одному из исходных множеств. Данную фразу можно понимать в прямом смысле.
Вернёмся к созданному нами множеству C, куда входят все элементы множеств A и B. Возьмём для примера из этого множества элемент 5. Что можно про него сказать?
Если 5 является элементом множества C, а множество С является объединением множеств A и B, то можно с уверенностью заявить, что элемент 5 принадлежит хотя бы одному из множеств A и B. Так оно и есть:
A = { 1, 2, 3 }
B = { 4, 5, 6 }
C = { 1, 2, 3, 4, 5, 6 }
Возьмем ещё один элемент из множества С, например, элемент 2. Что можно про него сказать?
Если 2 является элементом множества C, а множество С является объединением множеств A и B, то можно с уверенностью заявить, что элемент 2 принадлежит хотя бы одному из множеств A и B. Так оно и есть:
A = {1, 2, 3}
B = {4, 5, 6}
C = { 1, 2, 3, 4, 5, 6 }
Если мы захотим объединить два или более множества и вдруг обнаружим, что один или несколько элементов принадлежат каждому из этих множеств, то в объединение повторяющиеся элементы будут входить только один раз.
Например, рассмотрим множество A с элементами 1, 2, 3, 4 и множество B с элементами 2, 4, 5, 6.
A = {1, 2, 3, 4}
B = {2, 4, 5, 6}
Видим, что элементы 2 и 4 одновременно принадлежат и множеству A, и множеству B. Если мы захотим объединить множества A и B, то новое множество C будет содержать элементы 2 и 4 только один раз. Выглядеть это будет так:
C = { 1, 2, 3, 4, 5, 6 }
Чтобы при объединении не допустить ошибок, обычно поступают так: сначала в новое множество добавляют все элементы первого множества, затем добавляют элементы второго множества, которые не принадлежат первому множеству. Попробуем сделать такое объединение с множествами A и B.
Итак, у нас имеются следующие исходные множества:
A = { 1, 2, 3, 4 }
B = { 2, 4, 5, 6 }
Зададим новое множество С и добавим в него все элементы множества A
C = { 1, 2, 3, 4,
Теперь добавим элементы из множества B, которые не принадлежат множеству A. Множеству A не принадлежат элементы 5 и 6. Их и добавим во множество C
C = { 1, 2, 3, 4, 5, 6 }
Пример 2. Друзьями Джона являются Том, Фред, Макс и Джордж. А друзьями Майкла являются Лео, Том, Фред и Эван. Найти объединение множеств друзей Джона и Майкла.
Для начала зададим два множества: множество друзей Джона и множество друзей Майкла.
Друзья Джона = { | Том, Фред, Макс, Джорж } |
Друзья Майкла = { | Лео, Том, Фред, Эван } |
Зададим новое множество с названием «Все друзья Джона и Майкла» и добавим в него всех друзей Джона и Майкла.
Заметим, что Том и Фред одновременно являются друзьями Джона и Майкла, поэтому мы добавим их в новое множество только один раз, поскольку сразу двух Томов и двух Фредов не бывает.
Все друзья Джона и Майкла | = { Том, Фред, Макс, Джордж, Лео, Эван } |
В данном случае множество всех друзей Джона и Майкла является объединением множеств друзей Джона и Майкла.
Друзья Джона ∪ Друзья Майкла = Все друзья Джона и Майкла
Пример 3. Даны два числовых промежутка: [−7; 0] и [−3; 5]. Найти их объединение.
Оба промежутка обрамлены квадратными скобками, значит их границы принадлежат им.
Для наглядности перечислим все целые числа, принадлежащие этим промежуткам:
−7, −6, −5, −4, −3,−2, −1, 0 ∈ [−7; 0]
−3,−2, −1, 0, 1, 2, 3, 4, 5 ∈ [−3; 5]
Объединением числовых промежутков [−7; 0] и [−3; 5] будет числовой промежуток [−7; 5], который содержит все числа промежутка [−7; 0] и [−3; 5] без повторов некоторых из чисел
−7, −6, −5, −4, −3,−2, −1, 0, 1, 2, 3, 4, 5 ∈ [−7; 5]
Обратите внимание, что числа −3,−2, −1 принадлежали и первому промежутку и второму. Но поскольку в объединение допускается включать такие элементы только один раз, мы включили их единоразово.
Значит объединением числовых промежутков [−7; 0] и [−3; 5] будет числовой промежуток [−7; 5]
[−7; 0] ∪ [−3; 5] = [−7; 5]
Изобразим на координатной прямой промежутки [−7; 0] и [−3; 5]. На верхней области отметим числовой промежуток [−7; 0], на нижней — промежуток [−3; 5]
Ранее мы выяснили, что промежуток [−7; 5] является объединением промежутков [−7; 0] и [−3; 5]. Здесь полезно вспомнить про определение объединения множеств, которое было приведено в самом начале. Объединение трактуется, как множество, состоящее из всех элементов, принадлежащих хотя бы одному из исходных множеств.
Действительно, если взять любое число из промежутка [−7; 5], то окажется, что оно принадлежит хотя бы одному из промежутков: либо промежутку [−7; 0] либо промежутку [−3; 5].
Возьмём из промежутка [−7; 5] любое число, например число 2. Поскольку промежуток [−7; 5] является объединением промежутков [−7; 0] и [−3; 5], то число 2 будет принадлежать хотя бы одному из этих промежутков. В данном случае число 2 принадлежит промежутку [−3; 5]
Возьмём ещё какое-нибудь число. Например, число −4. Это число будет принадлежать хотя бы одному из промежутков: [−7; 0] или [−3; 5]. В данном случае оно принадлежит промежутку [−7; 0]
Возьмём ещё какое-нибудь число. Например, число −2. Оно принадлежит как промежутку [−7; 0], так и промежутку [−3; 5]. Но на координатной прямой оно указывается только один раз, поскольку в одной точке сразу два числа −2 не бывает.
Не каждое объединение числовых промежутков является числовым промежутком. Например, попробуем найти объединение числовых промежутков [−2; −1] и [4; 7].
Идея остаётся та же самая — объединением числовых промежутков [−2;−1] и [4; 7] будет множество, состоящее из элементов, принадлежащих хотя бы одному из промежутков: [−2; −1] или [4; 7]. Но это множество не будет являться числовым промежутком. Для наглядности перечислим все целые числа, принадлежащие этому объединению:
[−2; −1] ∪ [4; 7] = { −2, −1, 4, 5, 6, 7 }
Получили множество { −2, −1, 4, 5, 6, 7 }. Это множество не является числовым промежутком по причине того, что числа, располагающиеся между −1 и 4, не вошли в полученное множество
Числовой промежуток должен содержать все числа от левой границы до правой. Если одно из чисел отсутствует, то числовой промежуток теряет смысл. Допустим, имеется линейка длиной 15 см
Эта линейка является числовым промежутком [0; 15], поскольку содержит все числа в промежутке от 0 до 15 включительно. Теперь представим, что на линейке после числа 9 сразу следует число 12.
Эта линейка не является линейкой в 15 см, и её нежелательно использовать для измерения. Также, её нельзя назвать числовым промежутком [0; 15], поскольку она не содержит все числа, которые должна была содержать.
Решение неравенств, содержащих знак ≠
Некоторые неравенства содержат знак ≠ (не равно). Например, 2x ≠ 8. Чтобы решить такое неравенство, нужно найти множество значений переменной x, при которых левая часть не равна правой части.
Решим неравенство 2x ≠ 8. Разделим обе части данного неравенства на 2, тогда получим:
Получили равносильное неравенство x ≠ 4. Решением этого неравенства является множество всех чисел, не равных 4. То есть если мы подставим в неравенство x ≠ 4 любое число, которое не равно 4, то получим верное неравенство.
Подставим, например, число 5
5 ≠ 4 — верное неравенство, поскольку 5 не равно 4
Подставим 7
7 ≠ 4 — верное неравенство, поскольку 7 не равно 4
И поскольку неравенство x ≠ 4 равносильно исходному неравенству 2x ≠ 8, то решения неравенства x ≠ 4 будут подходить и к неравенству 2x ≠ 8. Подставим те же тестовые значения 5 и 7 в неравенство 2x ≠ 8.
2 × 5 ≠ 8
2 × 7 ≠ 8
Изобразим множество решений неравенства x ≠ 4 на координатной прямой. Для этого выколем точку 4 на координатной прямой, а всю оставшуюся область с обеих сторон выделим штрихами:
Теперь запишем ответ в виде числового промежутка. Для этого воспользуемся объединением множеств. Любое число, являющееся решением неравенства 2x ≠ 8 будет принадлежать либо промежутку (−∞; 4) либо промежутку (4; +∞). Так и записываем, что значения переменной x принадлежат (−∞; 4) или (4; +∞). Напомним, что для слова «или» используется символ ∪
x ∈ (−∞; 4) ∪ (4; +∞)
В этом выражении говорится, что значения, принимаемые переменной x, принадлежат промежутку (−∞; 4) или промежутку (4; +∞).
Неравенства, содержащие знак ≠, также можно решать, как обычные уравнения. Для этого знак ≠ заменяют на знак =. Тогда получится обычное уравнение. В конце решения найденное значение переменной x нужно исключить из множества решений.
Решим предыдущее неравенство 2x ≠ 8, как обычное уравнение. Заменим знак ≠ на знак равенства =, получим уравнение 2x = 8. Разделим обе части данного уравнения на 2, получим x = 4.
Видим, что при x, равном 4, уравнение обращается в верное числовое равенство. При других значениях равенства соблюдаться не будет. Эти другие значения нас и интересуют. А для этого достаточно исключить найденную четвёрку из множества решений.
Пример 2. Решить неравенство 3x − 5 ≠ 1 − 2x
Перенесем −2x из правой части в левую часть, изменив знак, а −5 из левой части перенесём в правую часть, опять же изменив знак:
Приведем подобные слагаемые в обеих частях:
Разделим обе части получившегося неравенства на 5
Решением неравенства x ≠ 1,2 является множество всех чисел, не равных 1,2.
Изобразим множество решений неравенства x ≠ 1,2 на координатной прямой и запишем ответ в виде числового промежутка:
x ∈ (−∞; 1,2) ∪ (1,2; +∞)
В этом выражении говорится, что значения, принимаемые переменной x принадлежат промежутку (−∞; 1,2) или промежутку (1,2; +∞)
Решение совокупностей неравенств
Рассмотрим ещё один вид неравенств, который называется совокупностью неравенств. Такой тип неравенств, возможно, вы будете решать редко, но для общего развития полезно изучить и их.
Совокупность неравенств очень похожа на систему неравенств. Различие в том, что в системе неравенств нужно найти множество решений, удовлетворяющих каждому неравенству, образующему эту систему.
А в случае с совокупностью неравенств, нужно найти множество решений, удовлетворяющих хотя бы одному неравенству, образующему эту совокупность.
Совокупность неравенств обозначается квадратной скобкой. Например, следующая запись из двух неравенств является совокупностью:
Решим данную совокупность. Сначала нужно решить каждое неравенство по отдельности.
Решением первого неравенства x ≥ 3 является числовой промежуток [3; +∞). Решением второго неравенства x ≤ 6 является числовой промежуток (−∞; 6].
Множество значений x, при которых верно хотя бы одно из неравенств, будет принадлежать промежутку [3; +∞) или промежутку (−∞; 6]. Так и записываем:
x ∈ [3; +∞) ∪ (−∞; 6]
В этом выражении говорится, что переменная x, входящая в
совокупность принимает все значения, принадлежащие промежутку [3; +∞) или промежутку (−∞; 6]. А это то, что нам нужно. Ведь решить совокупность означает найти множество решений, удовлетворяющих хотя бы одному неравенству, образующему эту совокупность. А любое число из промежутка [3; +∞) или промежутка (−∞; 6] будет удовлетворять хотя бы одному неравенству.
Например, число 9 из промежутка [3; +∞) удовлетворяет первому неравенству x ≥ 3. А число −7 из промежутка (−∞; 6] удовлетворяет второму неравенству x ≤ 6.
Посмотрите внимательно на выражение x ∈ [3; +∞) ∪ (−∞; 6], а именно на его правую часть. Ведь выражение [3; +∞) ∪ (−∞; 6] представляет собой объединение числовых промежутков [3; +∞) и (−∞; 6]. Точнее, объединение множеств решений первого и второго неравенства.
Стало быть, решением совокупности неравенств является объединение множеств решений первого и второго неравенства.
Иначе говоря, решением совокупности будет объединение числовых промежутков [3; +∞) и (−∞; 6]
Объединением числовых промежутков [3; +∞) и (−∞; 6] является промежуток (−∞; +∞). Точнее, объединением числовых промежутков [3; +∞) и (−∞; 6] является вся координатная прямая. А вся координатная прямая это все числа, которые только могут быть
[3; +∞) ∪ (−∞; 6] = (−∞; +∞)
Ответ можно оставить таким, каким мы его записали ранее:
x ∈ [3; +∞) ∪ (−∞; 6]
либо заменить на более короткий:
x ∈ (−∞; +∞)
Возьмём любое число из полученного объединения, и проверим удовлетворяет ли оно хотя бы одному неравенству.
Возьмем для примера число 8. Оно удовлетворяет первому неравенству x ≥ 3.
8 ≥ 3
Возьмем еще какое-нибудь число, например, число 1. Оно удовлетворяет второму неравенству x ≤ 6
1 ≤ 6
Возьмем еще какое-нибудь число, например, число 5. Оно удовлетворяет и первому неравенству x ≥ 3 и второму x ≤ 6
Пример 2. Решить совокупность неравенств
Чтобы решить эту совокупность, нужно найти множество решений, которые удовлетворяют хотя бы одному неравенству, образующему эту совокупность.
Для начала найдём множество решений первого неравенства x < −0,25. Этим множеством является числовой промежуток (−∞; −0,25).
Множеством решений второго неравенства x ≥ −7 является числовой промежуток [−7; +∞).
Решением совокупности неравенств будет объединение множеств решений первого и второго неравенства.
x ∈ (−∞; −0,25) ∪ [−7; +∞)
Иначе говоря, решением совокупности будет объединение числовых промежутков (−∞; −0,25) и [−7; +∞)
Объединением числовых промежутков (−∞; −0,25) и [−7; +∞) является является вся координатная прямая. А вся координатная прямая это все числа, которые только могут быть
(−∞; −0,25) ∪ [−7; +∞) = (−∞; +∞)
Ответ можно оставить таким, каким мы его записали ранее:
x ∈ (−∞; −0,25) ∪ [−7; +∞)
либо заменить на более короткий:
x ∈ (−∞; +∞)
Пример 3. Решить совокупность неравенств
Решим каждое неравенство по отдельности:
Множеством решений первого неравенства x < −3 является числовой промежуток (−∞; −3).
Множеством решений второго неравенства x ≤ 0 является числовой промежуток (−∞; 0].
Решением совокупности неравенств будет объединение множеств решений первого и второго неравенства.
x ∈ (−∞; −3) ∪ (−∞; 0]
Иначе говоря, решением совокупности будет объединение числовых промежутков (−∞; −3) и (−∞; 0]
Объединением числовых промежутков (−∞; −3) и (−∞; 0] является числовой промежуток (−∞; 0]
(−∞; −3) ∪ (−∞; 0] = (−∞; 0]
Ответ можно оставить таким, каким мы его записали ранее:
x ∈ (−∞; −3) ∪ (−∞; 0]
либо заменить на более короткий:
x ∈ (−∞; 0]
Задания для самостоятельного решения
Задание 1. Найдите пересечение и объединение следующих множеств:
А = { 1, 2, 5 }
B = { 3, 4, 5 }
Решение:
A ∩ B = { 5 }
A ∪ B = { 1, 2, 3, 4, 5 }
Задание 2. Найдите пересечение и объединение следующих множеств:
А = { −3, −2, −1, 0, 1, 2 }
B = { 1, 2, 3, 4, 5 }
Решение:
A ∩ B = { 1, 2 }
A ∪ B = { −3, −2, −1, 0, 1, 2, 3, 4, 5 }
Задание 3. Найдите пересечение и объединение следующих множеств:
А = { 1, 2, 3 }
B = { 3, 4 }
Решение:
A ∩ B = { 3 }
A ∪ B = { 1, 2, 3, 4 }
Задание 4. Найдите пересечение и объединение следующих числовых промежутков:
[−2; 7) и (0; 10]
Решение:
[−2; 7) ∩ (0; 10] = (0; 7)
[−2; 7) ∪ (0; 10] = [−2; 10]
Задание 5. Найдите пересечение и объединение следующих числовых промежутков:
(−∞; 3] и [−2; 1)
Решение:
(−∞; 3] ∩ [−2; 1) = [−2; 1)
(−∞; 3] ∪ [−2; 1) = (−∞; 3]
Задание 6. Найдите пересечение и объединение следующих числовых промежутков:
(3; +∞) и [2; +∞)
Решение:
(3; +∞) ∩ [2; +∞) = (3; +∞)
(3; +∞) ∪ [2; +∞) = [2; +∞)
Задание 7. Найдите пересечение и объединение следующих числовых промежутков:
[−3; −1] и (−2; 4]
Решение:
[−3; −1] ∩ (−2; 4] = (−2; −1]
[−3; −1] ∪ (−2; 4] = [−3; 4]
Задание 8. Решите неравенство:
Задание 9. Решите неравенство:
Задание 10. Решите совокупность неравенств:
Задание 11. Решите совокупность неравенств:
Задание 12. Решите совокупность неравенств:
Понравился урок?
Вступай в нашу новую группу Вконтакте и начни получать уведомления о новых уроках
Возникло желание поддержать проект?
Используй кнопку ниже
Навигация по записям
Множества, отображения и числа
1.1Множества
1.1.1Примеры множеств
В математике принято давать строгие определения всем вводимым понятиям. Однако,
когда мы даём определение новому понятию, мы описываем его с помощью слов,
каждое из которых, по идее, также нуждается в определении. Поскольку этот
процесс не может продолжаться до бесконечности, в какой-то момент мы вынуждены
остановиться, и сказать, что некоторые понятия мы не будем определять формально.
Как бы определение 1. Множество — это набор каких-то элементов.
Это как бы определение даёт мало информации — фактически, в нём сказано, что
множество — это набор, а что такое набор — так же непонятно. Чтобы стало чуть
более понятно, давайте приведём пару примеров:
Пример 1. Определим множество A:={1,2,3}, которое состоит из трёх элементов —
чисел 1, 2 и 3. (Когда какой-то объект впервые определяется, мы часто будем
использовать знак := вместо обычного равно, чтобы подчеркнуть, что мы
таким образом определяем значение того символа, который стоит со стороны
двоеточия.) Чтобы задать множество, можно перечислить его элементы,
заключив их в фигурные скобки. (Так, конечно, можно задать не все множества,
а только конечные, в которых число элементов конечно; чуть позже мы
столкнёмся с бесконечными множествами.) Важно отметить, что
порядок следования элементов при перечислении не имеет значения: я мог бы
написать {2,1,3} или {3,2,1} и получить ровно то же самое
множество A. Ещё одно важное замечание: каждый элемент либо входит в
множество, либо не входит, нельзя «дважды входить» в множество. Если бы я
написал {1,1,2,3}, было бы непонятно, что я имею в виду — хотя
единица написана дважды, входить в множество она может ровно один раз.
(Например, в языке программирования Python, умеющем работать с множествами,
такая запись создало бы такое же множество, как и A.)
Пример 2. Бывает пустое множество, которое обозначается ∅ (в другом стиле
выглядит как ∅). Оно не содержит ни одного элемента: ∅={}.
Утверждение «элемент x входит в множество X» кратко записывается таким образом:
x∈X
То есть, например, справедливо сказать, что 1∈A для множества A,
определенного в примере 1, а 4∉A.
Определение 1. Пусть есть два множества, X и Y. Говорят, что X является
подмножеством множества Y (пишут X⊂Y или Y⊃X),
если всякий элемент множества X также является и элементом множества Y.
Например, множество {1,2} является подмножеством множества A из
примера 1, а множество {1,2,3,4} — не является.
Пример 3. Множества могут быть сами элементами множеств. Например, можно рассмотреть
множество всех подмножеств множества A: получится такое множество
(обозначим его через B):
B:={∅,{1},{2},{3},{1,2},{1,3},{2,3},{1,2,3}}
Обратите внимание на разницу между знаками ∈ и ⊂. Например, для
множества A, справедливо утверждение 1∈A, справедливо утверждение
{1}⊂A, но неверно, что {1}∈A, поскольку элементами A
являются числа, а не множества. Для множества B, наоборот, 1∉B,
зато {1}∈B.
Вопрос 1. Кстати, а верно ли, что {1}⊂B?
Верно
Нет, {1} не является подмножеством множества B: оно
содержит это множество как элемент. Если вы хотите создать
множество, единственным элементом которого является множество
{1}, оно будет записываться как {{1}}.
Неверно
Действительно, {1} не является подмножеством множества B: оно
содержит это множество как элемент. Если вы хотите создать
множество, единственным элементом которого является множество
{1}, оно будет записываться как {{1}}.
Как мы видим из примера 3, множества могут содержать в себе
другие множества. Тут может возникнуть соблазн рассмотреть «множество всех
возможных множеств», однако это приводит к проблемам (подробнее можно посмотреть
в статье про парадокс
Рассела в Википедии). Таких
проблем удаётся избегать, если мы разрешаем рассматривать лишь множества,
которые понятным образом строятся из уже определенных ранее множеств. Так мы и
будем поступать. Есть более аккуратные способы определения множеств путём ввода
некоторой системы аксиом, но для всех практических целей нам будет достаточно
«наивного» понятия о множествах, которое обсуждается здесь.
1.1.2Операции над множествами
Нам понадобятся некоторые известные операции с множествами.
Определение 2. Для произвольных множеств X и Y, определим их пересечение, то
есть новое множество (обозначается X∩Y), которое состоит из всех
элементов, которые есть одновременно и в X, и в Y.
Определение 3. Для произвольных множеств X и Y, определим их объединение, то
есть новое множество (обозначается X∪Y), которое состоит из всех
элементов, которые есть хотя бы в одном из множеств X, или в Y (или в
обоих).
Определение 4. Для произвольных множеств X и Y, разностью X∖Y (также пишут
просто X−Y) называется множество всех элементов X, не содержащихся в
Y. Иногда говорят дополнение Y до X (вероятно, наиболее
корректным этот термин является, если Y является подмножеством X).
1.2Отображения
Вы наверняка встречались с понятием функции. В математике есть два набора
терминов, которые описывают одно и то же — в одних случаях используется слово
«функция», в других — «отображение». Слово «отображение» выглядит чуть более
универсальным термином. Его можно было бы определить формально, опираясь только
на понятие множества, но мы ограничимся неформальным описанием.
Как бы определение 2. Рассмотрим два произвольных множества X и Y. Пусть мы
каждому элементу из множества X поставили в соответствие какой-то элемент из
множества Y. Тогда говорят, что мы задали отображение из X в Y.
Пример 4. Рассмотрим отображение из множества A={1,2,3} в множество
L:={a,b,c,d} (здесь a, b,
c и d — не переменные, а просто буквы английского
алфавита — множества ведь могут содержать не только числа), заданное
следующим образом (см. рис 1.4: числу 1 поставили в
соответствие букву b, числу 2 — букву c и числу 3
— букву b. Таким образом мы задали отображение из A в L. Это
отображение можно обозначить какой-нибудь буквой, например, буквой g.
Тогда можно записать: g(1)=b, g(2)=c и
g(3)=b. Говорят также, что под действием отображения g, число
1 переходит в букву b и т.д. Также можно сказать, что буква
b является образом числа 1 под действием отображения
g, и наоборот, число 1 является одним из прообразов буквы
b.
Если задано отображение f из множества X в множество Y, пишут:
f:X→Y.
Можно представить себе отображение f:X→Y как такую картинку, в
которой из каждого элемента множества X выходит стрелочка, которая ведёт к
какому-то элементу мноежства Y. При этом стрелочки обязаны выходить из всех
элементов X, но не обязаны входить во все элементы Y. Важно также, что
из каждого элемента X выходит ровно одна стрелочка, то есть каждый элемент
множества X отображается ровно в один элемент множества Y.
Определение 5. Отображение f:X→Y называется инъективным (или просто
инъекцией), если оно «не склеивает точки», то есть не переводит две
разные точки в одну и ту же. Если представлять отображение в виде картинки
со стрелочками, это соответствует тому, что нет двух стрелочек, ведущих в
одну и ту же точку.
Рис. 1.5: Не инъективное (слева) и инъективное (справа) отображения.
Определение 6. Отображение f:X→Y называется сюръективным (или просто
сюръекцией), если в любую точку множества Y что-то переходит. Иными
словами, у любой точки множества Y есть хотя бы один прообраз под
действием f. Если представлять отображение в виде картинки
со стрелочками, это соответствует тому, что в каждую точку Y ведёт хотя бы
одна стрелочка.
Рис. 1.6: Не сюръективное (слева) и сюръективное (справа) отображения.
Определение 7. Отображение f:X→Y называется биективным (или
биекцией, или взаимно однозначным отображением), если оно
одновременно является инъективным и сюръективным. В этом случае не только каждому
элементу множества X поставлен в соответствие ровно один элемент Y (как
всегда бывает, когда отображение задано), но и наоборот, каждому элементу
множества Y поставлен в соответствие ровно один элемент множества X —
тот, который в него переходит под действием отображения. Он существует
(потому что отображение сюръективно) и единственный (потому что инъективно).
Рис. 1.7: Биективное отображение.
Определение 8. Множества, между которыми существует взаимно однозначное соответствие,
называются равномощными. Очевидно, если два множества равномощны, у
них одинаковая мощность. Но что такое эта мощность? Для конечных множеств,
мощность определяется просто как число элементов. Для бесконечных всё
сложнее, мы поговорим об этом позже.
1.3Числа
Основным строительным материалом для всего последующего курса будут различные
числовые множества.
1.3.1Натуральные числа
Множество натуральных чисел {1,2,3,…} обозначается буквой N. Единственный камень преткновения: считать ли ноль натуральным числом. Как
правило, натуральные числа «определяются» как «числа, используемые при счёте
предметов». В этом случае среди натуральных чисел нет нуля, и это соответствует
распространённому в России соглашению. Есть другой подход — сказать, что
натуральные числа — это «мощности конечных множеств» (см.
определение 8). В этом случае ноль следовало бы считать
натуральным, потому что это мощность пустого множества. Такое соглашение
принято, например, во Франции. Мы будем использовать соглашение, принятое в
России, и не будем считать 0 натуральным числом.
1.3.2Целые числа
Множество целых чисел обозначается буквой Z={0,1,−1,2,−2,…}. Натуральные числа являются подмножеством целых (натуральные числа
— это в точности целые положительные числа).
Каких чисел больше: натуральных или целых? Казалось бы, отрицательных целых
чисел «столько же», сколько положительных, то есть натуральные числа входит в
число целых дважды, да ещё остаётся ноль. То есть целых должно быть вдвое
больше, чем натуральных (и ещё чуть-чуть больше). На самом деле, для бесконечных
множеств такая логика не работает: легко придумать взаимно однозначное
соответствие между натуральными и целыми числами (например, можно
воспользоваться тем, как эти множества записаны выше: 1 отобразить в 0, 2
в 1, 3 в −1, 4 в 2, 5 в −2 и т.д.), так что с тем же успехом можно
сказать, что их «поровну». Аккуратное утверждение состоит в том, что множества
целых и натуральных чисел равномощны.
1.3.3Рациональные числа
Множество рациональных чисел Q состоит из всевозможных обыкновенных
дробей вида {pq∣p∈Z,q∈N}, то есть
дробей с целым числителем и натуральным знаменателем. Конечно, мы знаем, что
бывают разные дроби, задающие одно и то же число: например,
24=12. Вообще, для любого целого m≠0, дроби
pq и pmqm задают одно и то же число.
Арифметические операции с рациональными числами задаются с помощью стандартных
правил действий с обыкновенными дробями.
Целые числа входят в множество рациональных чисел — это в точности рациональные
числа со знаменателем 1.
Определение 9. Целые числа m и n называются взаимно простыми, если они не имеют
общих натуральных делителей, кроме 1.
Если числа m и n взаимно просты, дробь mn является
несократимой. (Если бы у m и n были натуральные делители, отличные от
1, на них можно было сократить, а так сокращать не на что.)
Теорема 1. Любое рациональное число имеет единственное представление в виде
нескоратимой дроби pq, p∈Z, q∈N. Иными
словами, если есть другое представление, pq=mn, где m
и n взаимно просты и n натурально, то обязательно p=m и q=n.
Эта теорема кажется очевидной, но на самом деле таковой не является. Например,
если бы мы разрешили знаменателю принимать не только натуральные, но и любые
целые ненулевые значения, теорема была бы неверна: 12=−1−2,
хотя обе дроби несократимы. Её аккуратное доказательство требует либо веры в
основную теорему арифметики (о том, что любое целое число однозначно задаётся в
виде произведения простых сомножителей), которая имеет не очень короткое
доказательство, либо использования алгоритма Евклида. Второй подход приведён в
виде серии задачи в семинарских
листочках.
1.3.4Вещественные числа
С вещественными (действительными) числами всё сложно. Интуитивно, вещественные
числа — это длины отрезков, площади фигур и т.д. Но чтобы аккуратно их ввести в
математику, человечество потратило несколько тысяч лет: тот факт, что длины
отрезков могут не выражаться рациональными числами, был известен ещё Древним
Грекам за несколько сотен лет до нашей эры, но аккуратно вещественные числа были
введены в математику только в XIX веке.
В рамках лекций мы будем следовать «школьному» определению: вещественное число —
это бесконечная десятичная дробь, то есть бесконечная вправо последовательность
цифр, у которой на каком-то месте стоит десятичная запятая (в англоязычной
традиции — десятичная точка).
Чтобы какое-то множество можно было с полным правом называть числовым, нужно,
чтобы на нём были определены арифметические операции. Для конечных десятичных
дробей это делается с помощью стандартных алгоритмов сложения и умножения
(столбиком) и деления (уголком), которые проходят в школе. Для бесконечных
десятичных дробей так просто это сделать не получается, и мы не будем этим
заниматься — скажем только, что сделать это возможно, и результат будет
соответствовать нашим интуитивным представлениям об этих операциях. (Для
желающих у нас заготовлена серия задач, в которых вещественные числа
определяются несколько иначе — как некоторые множества рациональных чисел — мы
их дадим, когда все будут к этому готовы.)
Рациональные числа входят в множество вещественных чисел. Этот факт, вообще
говоря, не прямо следует из определения, но его можно доказать, воспользовавшись
алгоритмом деления уголком и свойствами геометрических прогрессий, более
подробное обсуждение — на семинаре.
Определение 10. Вещественные числа, не являющиеся рациональными, называются
иррациональными. Специального обозначения для иррациональных чисел
нет, обычно просто пишут R∖Q.
Чтобы не казалось, что мы зря возимся с вещественными числами, давайте докажем,
что иррациональные числа существуют. Для этого предъявим по крайней мере одно
такое число: √2.
(Конечно, можно было бы не верить в существование иррациональных чисел, и
сказать, что раз √2 не является рациональным, то просто нет такого числа,
нельзя вычислить квадратный корень из двух, и всё тут; проблема в том, что тогда
мы не могли бы никак измерить длину диагонали квадрата со стороной 1, которая,
по теореме Пифагора, равна как раз √2. Это было бы неудачно.)
Доказательство. Докажем от противного. Пусть является, то есть существует такая нескоратимая
дробь pq, которая равна √2. По определению, √2
это такое число, которое при повзведении в квадрат даёт 2. Значит,(pq)2=2;p2q2=2;p2=2q2.
Из этого следует, что p2 — четное число. Если бы p было нечётным, оно
бы представлялось в виде p=(2k+1) и его квадрат был бы нечётным:
p2=(2k+1)2=4k2+4k+1=4k(k+1)+1. Значит, p обязательно чётно. Пусть
p=2k. Имеем:(2k)2=2q2;4k2=2q2;2k2=q2.
Из таких же рассуждений получаем, что q должно быть чётным. Но по
предположению, дробь pq несократима, и значит её числитель и
знаменатель не могут быть одновременно чётными. Противоречие.∎
Множество. Элементы множества. Способы задания множества. Пустое множество. Подмножество.Операции над множествами.
Тема урока: Множество. Элементы множества. Способы задания множества. Пустое множество. Подмножество.Операции над множествами.
Цель урока: изучить понятия множество, подмножество, элементы множества, пустое множество и операций над множествами: пересечение, объединение; проводить несложные систематизации; приводить примеры различных множеств и подмножеств, правильно проводить логические рассуждения.Воспитание аккуратности при работе в тетради, самостоятельности, грамотной математической речи. Развитие мышления учащихся (в ходе выполнения заданий актуализации и на протяжении всего урока). внимания учащихся (выполнение заданий на нахождение соответствия). Развитие памяти учащихся
СТРУКТУРА УРОКА
1.Организационный момент
2.Устный счет
3. Изучение нового материала
4.Закрепление
5.Подведение итогов
6.Рефлексия
7.Домашнее задание
Ход урока
1.Организационный момент
Вступительное слово учителя
2. Устный счет
1) 52 + 32 2)67 – 25 3) 51:10 4) 47 -3 : 2
3. Изучение нового материала
Часть 1
Эпиграф:
Множество возникает путем объединения
отдельных предметов в единое целое.
Оно есть множественность мыслимая как единое.
Ф. Хаусдорф
Множество представляет собой объединение некоторых объектов или предметов в единую совокупность по каким-либо общим свойствам или законам.Обозначают А,В,Р,…
Например:
множество зверей,
множество учеников;
множество столов;
множество стульев;
Предметы, составляющие данное множество, называются его элементами.
Обозначают .
Если множество А состоит из элементов a , c , k , то записывают это так: А = { a , c , k }.
Например, множество дней недели состоит из элементов: понедельник, вторник, среда, четверг, пятница, суббота, воскресенье.
Множество месяцев – из элементов: январь, февраль, март, апрель, май, июнь, июль, август, сентябрь, октябрь, ноябрь, декабрь.
Множество арифметических действий — из элементов: сложение, вычитание, умножение, деление.
Множества, состоящие из чисел, называют числовыми множествами.
N – множество натуральных чисел,
Z – множество целых чисел.
Виды множеств
Подмножество
Если каждый элемент множества В является элементом множества А, то множество В называется подмножеством множества А.
Пустое множество, по определению, считают подмножеством всякого множества.Обозначают Ø
Если два множества состоят из одних и тех же элементов, то они называются равными.
Например, А = { a , c , k , m , n } и В = { m , n , a , c , k }, А = В.
Множество является заданным, т.е. известным, если ясно, какие у него элементы. Поэтому, чтобы задать множество, можно просто перечислить все его элементы.
Круги́ Э́йлера[— геометрическая схема, с помощью которой можно изобразить отношения междуподмножествами, для наглядного представления. Изобретены Леонардом Эйлером.
При решении целого ряда задач Леонард Эйлер использовал идею изображения множеств с помощью кругов.
Однако, этим методом ещё до Эйлера пользовался выдающийся немецкий философ и математик Готфрид Вильгельм Лейбниц (1646—1716). Практическая работа
Задание1
Перечислите множество фруктов
Перечислите множество овощей
Перечислите множество школьных предметов учеников 6 класса
Задание 2
Начертите три круга изображающие круги Эйлера. В самом маленьком круге напишите, те знания и умения которые вы приобрели в дошкольном возрасте (множества А), во втором круге – чем пополнились ваши знания в начальной школе (множества В) и в самом большом круге чему вы научились в 5-6 классах (множество С). В каком отношении находятся эти множества? (ответ А подмножества множества В и в – подмножества множества С)
1.Дано множество {11; 34; 60; 16; 90}. Принадлежит ли этому множеству число, которое получится при сложении 60 и 30, при вычитании 9 из 17, при делении 72 на 8, при вычитании И из 48, при умножении 20 на 3? [да; нет; нет; да; да].
2.По какому признаку составлено множество {зима, весна, лето, осень}, {11. 13, 15, 17, 19}? [времена года, [нечетные числа большие 10 и меньшие 20].
3.По какому признаку составлено множество {6,3,5,2,4}? [Множество чисел, больших 1 и меньших 7. Является ли это мно жество подмножеством натуральных чисел? [Да].
4.Назовите множество дней одной недели; множество месяцев одного года. Является ли множество дней одной недели подмно жеством множества дней одного месяца? [Да].
5.Даны следующие множества:
А — множество учеников данной школы;
В — множество учеников пятых классов данной школы;
С — множество учащихся всех школ данного города;
Д — множество учащихся пятых классов, посещающих кружковые занятия по математике;
Е — множество всех учащихся школ России.
[ Д ВАСЕ].
Перечислить буквы, обозначающие множества, так, чтобы каждая буква (кроме последней) обозначала подмножество следующего множества.
6.Даны множества:
А — множество натуральных чисел;
В — множество четных чисел;
С — множество нечетных чисел;
Д — множество чисел, делящихся на 5;
Е — множество чисел, делящихся на 10.
[ВА, СА, ДА, ЕА, ДС, ЕВ, ДЕ].
Указать, какие из данных множеств являются подмножествами других данных множеств.
7.Назовите множество натуральных чисел, расположенных между числами 21 и 22.
[Ø]
(Объяснение учителя).
Часть 2.Решим ЗАДАЧУ № 1.
«В пятых классах школы училось 70 человек. Им было предложено записаться в 3 кружка: по математике, литературе и истории. Староста подсчитал число учащихся, желающих участвовать во внеклассной работе, и получил такие результаты. В кружок по математике записалось 51 человек, по литературе — 40, по истории — 22. 6 человек решили заниматься во всех кружках, математикой и литературой решили заниматься 32 человека, одновременно заниматься математикой и историей решили 11 человек, а литера турой и историей 8 человек. Получив результаты, староста сказал: «Можно подумать, что у нас в 5-х классах обучается не 70 человек, а 170. Все хотят заниматься в кружках».
Однако один из любителей математики сказал: «Что ты, у нас есть ученики, которые не любят ни математику, ни литературу, ни исто рию. Я даже могу сказать, сколько их». Как он узнал?»
Введем обозначения:
В — множество всех учащихся;
М — множество учащихся (кружковцев), увлекающихся мате матикой;
JI — множество учащихся (кружковцев), увлекающихся лите ратурой;
И — множество учащихся (кружковцев), увлекающихся историей.
Из условия задачи следует, что все условия пересекаются.
Для составления схемы воспользуемся «кругами Эйлера».
Пересечение множеств М, JI и Д содержит 6 элементов (МЛИ|=6 это следует из условия задачи).
Пересечение множеств М и Л содержит 32 элемента (|MЛ|=32), но 6 элементов принадлежат множеству И (смотри рисунок).
Можно определить, сколько человек записать в кружки по мате матике и литературе (32-6=26 человек).
Пересечение множеств М и И содержит 11 элемента (|МИ|=11), но 6 элементов принадлежат множеству JI; следовательно в кружки по математике и истории записалось 11-6=5 человек.
ЛИ содержит 8 человек (|ЛИ|=8), но 6 элементов принадлежат множеству М, значит в кружки по литературе и истории записалось 8-6=2 человека.
Теперь легко определить сколько учащихся посещают только один кружок:
по математике — 51-(6+26+5)= 14 человек;
по литературе — 40-(6+26+2)=6 человек;
по истории — 22-(6+5+2)=9 человек;
всего записалось — 14+6+9+26+5+6+2=68 человек;
не записалось — 70-68=2 человека.
Решим ЗАДАЧУ № 2.
«В классе 40 человек. Играют в баскетбол 26 человек, занимаются плаванием — 25, ходят на лыжах — 27. Одновременно занимаются плаванием и баскетболом — 15, баскетболом и лыжами — 16, пла ванием и лыжами — 18. Один человек освобожден от занятий по физ культуре. Сколько человек занимается всеми указанными видами спорта? Сколько человек занимается только в одной спортивной секции?».
Введем обозначения:
Л — множество лыжников;
Б — множество баскетболистов;
П — множество пловцов.
По условию задачи все три множества пересекаются. Число эле ментов пересечения трёх множеств обозначим через X.
Пересечение множеств Б и П (БП) содержит 15 человек (|БП| = 15), но X человек принадлежат множеству Л. Можно определить, сколько человек занимаются баскетболом и плава нием: 15-Х (чел.).
Пересечение множеств JI и П (ЛП) содержит 18 человек (|ЛП|=18), но X человек принадлежат множеству Б. Можно определить, сколько человек занимаются лыжами и плаванием: 18-Х (чел.).
Пересечение множеств Б и JI (БЛ) содержит 16 человек (|БЛ|= 16), но X человек принадлежат множеству П. Можно определить, сколько человек занимаются баскетболом и лыжами: 16-Х (чел.).
Теперь легко определить, сколько учащихся занимаются только баскетболом:
26-(16-Х+Х+15-Х)=26-(31 -X).
Сколько учащихся занимаются только плаванием:
25-(18-Х+Х+15-Х)=25-(33-Х).
Сколько учащихся занимаются только лыжами:
27-(16-Х+Х+18-Х)=27-(34-Х).
По условию задачи известно, что в классе 40 человек и один чело век освобожден от занятий по физкультуре. Следовательно, можно составить уравнение:
25-(33-Х)+27-(34-Х)+26-(31 -Х)+15-X+l 8-Х+16-Х+Х+1 =40.
Отсюда, Х= 10, т. е. 10 человек одновременно занимаются баскет болом, плаванием и лыжами.
26-(31-10)=5 (чел.) занимаются только баскетболом.
3 (чел.) занимаются только лыжами.
25-(33-10)=2 (чел.) занимаются только плаванием.
Задача № 3
Из 40 учащихся класса выписывают газету, 21 – журнал, 15 учащихся – и газету и журнал. Сколько учащихся не выписывают ни журнала, ни газеты?
32-15=17 (чел.) — выписывают только газету.
21-15=6 (чел.) — выписывают только журнал.
40—(15+17+6)=2 (чел.).
Ответ: 2 человека не выписывают ни газеты, ни журнала.
Задача №4
В классе 35 учеников. 20 человек посещают математический кружок, 11 – биологический. 10 человек не посещают кружков. Сколько биологов увлекается математикой?
35-10=25 (чел.) — посещают кружки.
Пусть X чел. посещают и биологический, и математический кружки, тогда 20-Х (чел.) — посещают математический кружок, а 11 -X (чел.) — посещают биологический кружок.
Известно, что всего в кружках занимаются 25 человек. Следо вательно, можно составить уравнение:
20-Х+11-Х+Х=25
Х=6
Ответ: 6 биологов увлекаются математикой.
ЗАДАЧА №5.
Из 100 человек 85 знают английский язык, 80 – испанский, 75 – немецкий. Все владеют по крайней мере одним иностранным языком. Среди них нет таких, которые знают только два иностранных языка, но есть владеющие тремя языками. Сколько человек знают три иностранных языка?
Пусть X чел. владеют тремя языками, тогда (85-Х) чел. Владе ют только английским языком,(80-Х) чел. — только испанским, (75-Х) чел. — только немецким. По условию задачи известно, что среди 100 человек нет таких, которые знают только два иностранных языка, но все владеют по крайней мере одним иностранным языком. Следовательно, можно составить уравнение:
85-Х+Х+80-Х+75-Х=100
Х=70.
Ответ: 70 человек знают три иностранных языка.
Часть 3. Отношения между множествами. Операции над множествами. Разбиение множества на классы.
Между двумя множествами существует несколько видов отношений. Если множества А и В не имеют общих элементов, то говорят, что эти множества не пересекаются и записывают этот факт в виде А∩В =∅ . Например, А = { a , c , k }, В = { d , e , m , n }, общих элементов у этих множеств нет, поэтому множества не пересекаются.
Если множества А и В имеют общие элементы, т.е. элементы, принадлежащие одновременно А и В, то говорят, что эти множества пересекаются и записывают А∩В≠∅ . Например, множества А = { a , c , k } и В = { c , k , m , n } пересекаются, т. к. у них есть общие элементы c , k .
Множество В является подмножеством множества А, если каждый элемент множества В является также элементом множества А. Пустое множество является подмножеством любого множества. Само множество является подмножеством самого себя. (пишут В⊂ А)
Существует пять случаев отношений между двумя множествами. Их можно наглядно представить при помощи особых чертежей, которые называются кругами или диаграммами Эйлера-Венна.
а) б) в) г) д)
Определение. Пересечением множеств А и В называется множество, содержащее все элементы, которые принадлежат множеству А и множеству В.
Пересечение множеств А и В обозначают А∩ В. Таким образом, по определению, А ∩ В = { х | х ∈ А и х ∈ В}.
Например, если А = { a , c , k , m , n } и В = { a , b , c , d , e }, то А ∩ В = { a , c }.
Если изобразить множества А и В при помощи кругов Эйлера-Венна, то пересечением данных множеств является заштрихованная область (рис. 3).
Для пересечения множеств выполняются следующие свойства.
1) Переместительное или коммутативное свойство: А ∩ В = В ∩ А.
2) Сочетательное или ассоциативное свойство:(А ∩ В) ∩ С = А ∩ (В ∩ С).
3) А ∩ ∅ = ∅ (пустое множество является поглощающим элементом).
4) А ∩ U = А (универсальное множество является нейтральным элементом).
5) Если В ⊂А, то А∩В = В
Определение. Объединением множеств А и В называется множество, содержащее все элементы, которые принадлежат множеству А или множеству В.
Объединение множеств А и В обозначают А∪ В. Таким образом, по определению, А ∪ В = { х | х ∈А или х∈В}.
Например, если А = { a , c , k , m , n } и В = { a , b , c , d , e }, то А ∪ В = { a , c , k , m , n , b , d , e }.
Если изобразить А и В при помощи кругов Эйлера-Венна, то объединением данных множеств является заштрихованная область
Для объединения множеств выполняются следующие свойства.
1) Переместительное или коммутативное свойство: А ∪ В = В ∪ А.
2) Сочетательное или ассоциативное свойство:(А ∪ В)∪ С = А ∪ (В ∪ С).
3) А ∪ ∅= А (пустое множество является нейтральным элементом).
4) А ∪ U = U (универсальное множество является поглощающим элементом).
5) Если В ⊂А, то А∪В = В
Операции объединения и пересечения множеств связаны законами дистрибутивности или иначе распределительными свойствами:
(А ∪ В) ∩С = (А∩С) ∪ (В∩С) и (А∩В) ∪ С = (А ∪ С) ∩(В ∪ С).
П р и м е р 1. Пусть А – множество различных букв в слове «математика», а В – множество различных букв в слове «стереометрия». Найти пересечение и объединение множеств А и В.
Р е ш е н и е. Запишем множества А и В, перечислив их элементы: А = { м, а, т, е, и, к }, В = { с, т, е, р, о, м, и, я }. Буквы м, т, е, и принадлежат и множеству А, и множеству В, поэтому они войдут в пересечение этих множеств: А∩В = { м, т, е, и }. В объединение этих множеств войдут все элементы множества А и несовпадающие с ними элементы из множества В: А ∪ В = { м, а, т, е, и, к, с, р, о, я }.
П р и м е р 2 . В классе английский язык изучают 25 человек, а немецкий – 27 человек, причем 18 человек изучают одновременно английский и немецкий языки. Сколько всего человек в классе изучают эти иностранные языки? Сколько человек изучают только английский язык? Только немецкий язык?
Р е ш е н и е. Через А обозначим множество школьников, изучающих английский язык, через В – множество школьников, изучающих немецкий язык. Изобразим эту ситуацию с помощью диаграммы. Два языка изучают 18 школьников, поставим это число в пересечение множеств А и В. Английский язык изучают 25 человек, но среди них 18 человек изучают и немецкий язык, значит, только английский язык изучают 7 человек, укажем это число на диаграмме. Рассуждая аналогично, получим, что только немецкий язык изучают 27 – 18 = 9 человек. Поместим и это число на диаграмму. Теперь известно количество элементов в каждой части множеств, изображенных на диаграмме. Чтобы ответить на главный вопрос задачи, нужно сложить все числа: 7 + 18 + 9 = 34. Ответ: 34 человека в классе изучают иностранные языки.
Определение. Разностью множеств А и В называется множество, содержащее те и только те элементы, которые принадлежат множеству А и не принадлежат множеству В.
Разность множеств А и В обозначают А \ В. Таким образом, по определению разности А \ В = { х | х ∈ А и х ∉В}.
Например, если А = { a , c , k , m , n } и В = { a , b , c , d , e }, то А \ В = { k , m , n }.
Если изобразить А и В при помощи кругов Эйлера-Венна, то разность данных множеств является заштрихованная область (рис. 5).
Определение. Пусть В является подмножеством множества А. В этом случае разность множеств А и В называют дополнением подмножества В до множества А и обозначают В’А. Дополнение можно изобразить как показано на рис. 5. Если В – подмножество универсального множества U, то дополнение подмножества В до U обозначают В’.
Например, если В – множество однозначных натуральных чисел, то В’– множество неоднозначных натуральных чисел, если С – множество равнобедренных треугольников, то С’ – множество треугольников, у которых все стороны имеют разную длину.
Разность множеств и дополнение к подмножеству обладают рядом свойств.
1) (А \ В) \ С = (А \ С) \ В.
2) (А∪В) \ С = (А \ С) ∪ (В \ С).
3) (А \ В) ∩ С = (А ∩С) \ (В ∩ С).
4) (А ∪ В)’ = А’ ∩ В’.
5) (А ∩ В)’ = А’ ∪В’.
Четвертое свойство формулируется так: дополнение к объединению двух множеств равно пересечению дополнений к этим множествам. Пятое свойство формулируется аналогично.
П р и м е р 1. А – множество натуральных чисел, кратных 3, В – множество натуральных чисел, кратных 5. Задать описанием характеристического свойства множество А \ В и назвать три числа, принадлежащих этому множеству.
Р е ш е н и е. По определению разность данных множеств состоит из натуральных чисел, кратных 3 и не кратных 5. Поэтому разности множеств А и В принадлежат числа 9, 24, 33.
Задания для самостоятельной работы по теме :
Приведите примеры множеств А, В, С, если отношения между ними таковы:
2. Образуйте все подмножества множества букв в слове «крот». Сколько подмножеств получилось?
3. Даны множества А = { a , b , c , d , e , f , k } и В = { a , c , e , k , m , p }. Найдите А ∪ В , А ∩ В , А \ В , В \ А .
4. Из множества N выделили два подмножества: А – подмножество натуральных чисел, кратных 3, и В – подмножество натуральных чисел, кратных 5. Постройте круги Эйлера для множеств N , A , B ; установите, на сколько попарно непересекающихся множеств произошло разбиение множества N ; укажите характеристические свойства этих множеств.
5. Имеется множество блоков, различающихся по цвету (красные, желтые, зеленые), форме (круглые, треугольные, прямоугольные), размеру (большие, маленькие). На сколько классов разбивается множество, если в нем выделены подмножества: А – круглые блоки, В – зеленые блоки, С – маленькие блоки? Сделайте диаграмму Эйлера и охарактеризуйте каждый класс.
6. Известно, что А – множество спортсменов класса, В – множество отличников класса. Сформулируйте условия, при которых: а) А ∩В=Ø б)А U В=А
7. Пусть Х= { x N/ 1 x 15}. Задайте с помощью перечисления следующие его подмножества:
А – подмножество всех четных чисел;
В – подмножество всех нечетных чисел;
С – подмножество всех чисел, кратных 3;
D – подмножество всех чисел, являющихся квадратами;
E – подмножество всех простых чисел.
В каких отношениях они находятся?
6. Рефлексия
Мне больше всего удалось…
Для меня было открытием то, что …
За что ты можешь себя похвалить?
Что на ваш взгляд не удалось? Почему? Что учесть на будущее?
Мои достижения на уроке.
Раздаточный материал
ЗАДАЧа № 1.
«В пятых классах школы училось 70 человек. Им было предложено записаться в 3 кружка: по математике, литературе и истории. Староста подсчитал число учащихся, желающих участвовать во внеклассной работе, и получил такие результаты. В кружок по математике записалось 51 человек, по литературе — 40, по истории — 22. 6 человек решили заниматься во всех кружках, математикой и литературой решили заниматься 32 человека, одновременно заниматься математикой и историей решили 11 человек, а литера турой и историей 8 человек. Получив результаты, староста сказал: «Можно подумать, что у нас в 5-х классах обучается не 70 человек, а 170. Все хотят заниматься в кружках».
Однако один из любителей математики сказал: «Что ты, у нас есть ученики, которые не любят ни математику, ни литературу, ни исто рию. Я даже могу сказать, сколько их». Как он узнал?»
ЗАДАЧа № 2.
«В классе 40 человек. Играют в баскетбол 26 человек, занимаются плаванием — 25, ходят на лыжах — 27. Одновременно занимаются плаванием и баскетболом — 15, баскетболом и лыжами — 16, пла ванием и лыжами — 18. Один человек освобожден от занятий по физ культуре. Сколько человек занимается всеми указанными видами спорта? Сколько человек занимается только в одной спортивной секции?».
Задача № 3
Из 40 учащихся класса выписывают газету, 21 – журнал, 15 учащихся – и газету и журнал. Сколько учащихся не выписывают ни журнала, ни газеты?
Задача №4
В классе 35 учеников. 20 человек посещают математический кружок, 11 – биологический. 10 человек не посещают кружков. Сколько биологов увлекается математикой?
ЗАДАЧА №5.
Из 100 человек 85 знают английский язык, 80 – испанский, 75 – немецкий. Все владеют по крайней мере одним иностранным языком. Среди них нет таких, которые знают только два иностранных языка, но есть владеющие тремя языками. Сколько человек знают три иностранных языка?
«Элементы теории множеств»
I. Основные понятия и аксиомы теории множеств
За тысячи лет своего существования от простейших представлений о числе и фигуре математики пришла к образованию многих новых понятий и методов. Она превратилась в мощное средство изучения природы и гибкое орудие практики. XX век принес математике новые идеи, теории, расширилась сфера её применения. Математика занимает особое положение в системе наук – её нельзя отнести ни к гуманитарным, ни к естественным наукам. Но она ввела те основные понятия, которые используются в них. Таким понятием является понятие «множество», которое впервые возникло в математике и в настоящее время является общенаучным.
Первый набросок теории множеств принадлежит Бернарду Больцано («Парадоксы бесконечного», 1850). В этой работе рассматриваются произвольные (числовые) множества, и для их сравнения определено понятие взаимно-однозначного соответствия.
В конце 19 века Георг Кантор, немецкий математик, основоположник теории множеств, дал интуитивное определение понятию «множеству» так: «Множество есть многое, мыслимое как единое целое» [1]. Такое определение множества потребовало введения трех символов.
Первый из них должен представлять множество как нечто «единое», т.е. являться представителем самого множества. В качестве такого символа принято применять любую прописную букву какого-либо алфавита: например, обозначать множества прописными буквами латинского алфавита А, В, …, Х или какого-либо другого по соглашению.
Второй символ должен представлять «многое», то есть рассматриваться как элемент множества. В качестве этого символа принято использовать строчные буквы этого же алфавита: a, b, …, z.
Третий символ должен однозначно соотнести элемент множеству. В качестве соответствующего символа определен знак , который происходит от первой буквы греческого слова (быть). Запись определяет отношение: х есть элемент Х. Для того чтобы указать, что х не есть элемент Х, пишут .
Теория графов — независимые множества
Независимые наборы представлены в наборах, в которых
не должно быть никаких краев, смежных друг с другом . Между двумя ребрами не должно быть общей вершины.
не должно быть никаких вершин, смежных друг с другом . Между любыми двумя вершинами не должно быть общего ребра.
не должно быть никаких краев, смежных друг с другом . Между двумя ребрами не должно быть общей вершины.
не должно быть никаких вершин, смежных друг с другом . Между любыми двумя вершинами не должно быть общего ребра.
Независимый набор линий
Пусть ‘G’ = (V, E) — граф. Подмножество L в E называется множеством независимых линий ‘G’, если нет двух ребер в L смежных. Такой набор называется набором независимых строк.
пример
Давайте рассмотрим следующие подмножества —
L 1 = {a,b} L 2 = {a,b} {c,e} L 3 = {a,d} {b,c}
В этом примере подмножества L 2 и L 3 явно не являются смежными ребрами в данном графе. Это независимые линейные наборы. Однако L 1 не является независимым линейным набором, так как для создания независимого линейного набора должно быть как минимум два ребра.
Максимальный набор независимых линий
Независимый набор линий называется максимальным набором независимых линий графа «G», если никакое другое ребро «G» не может быть добавлено к «L».
пример
Давайте рассмотрим следующие подмножества —
L 1 = {a, b} L 2 = {{b, e}, {c, f}} L 3 = {{a, e}, {b, c}, {d, f}} L 4 = {{a, b}, {c, f}}
L 2 и L 3 — максимальные независимые наборы линий / максимальное совпадение. Что касается только этих двух подмножеств, нет никакой возможности добавить любое другое ребро, которое не является смежным. Следовательно, эти два подмножества рассматриваются как максимальные независимые линейные множества.
Максимальный набор независимых линий
Максимальный набор независимых линий с максимальным числом ребер называется максимальным набором независимых линий с G.
Number of edges in a maximum independent line set of G (β 1 ) = Line independent number of G = Matching number of G
пример
Давайте рассмотрим следующие подмножества —
L 1 = {a, b} L 2 = {{b, e}, {c, f}} L 3 = {{a, e}, {b, c}, {d, f}} L 4 = {{a, b}, {c, f}}
L 3 — это максимальное независимое линейное множество G с максимальными ребрами, которые не являются смежными ребрами в графе и обозначается как β 1 = 3.
Примечание. Для любого графа G без изолированной вершины
α 1 + β 1 = количество вершин в графе = | V |
пример
Номер покрытия линии K н / с н / ш н ,
Независимый от линии номер (соответствующий номер) = β 1 = ⌊ n / 2 ⌋ α 1 + β 1 = n
Независимый набор вершин
Пусть ‘G’ = (V, E) — граф. Подмножество V называется независимым множеством G, если в S нет двух смежных вершин.
пример
Рассмотрим следующие подмножества из приведенных выше графиков —
S 1 = {e} S 2 = {e, f} S 3 = {a, g, c} S 4 = {e, d}
Ясно, что S 1 не является независимым множеством вершин, потому что для получения независимого множества вершин в графе должно быть как минимум две вершины. Но здесь это не тот случай. Подмножества S 2 , S 3 и S 4 являются независимыми наборами вершин, потому что нет вершин, смежных с какой-либо одной вершиной из подмножеств.
Максимальный независимый набор вершин
Пусть ‘G’ граф, тогда независимое множество вершин из G называется максимальным, если никакая другая вершина из G не может быть добавлена к ‘S’.
пример
Рассмотрим следующие подмножества из приведенных выше графиков.
S 1 = {e} S 2 = {e, f} S 3 = {a, g, c} S 4 = {e, d}
S 2 и S 3 — максимальные независимые множества вершин группы ‘G’. В S 1 и S 4 мы можем добавить другие вершины; но в S 2 и S 3 мы не можем добавить любую другую вершину
Максимально независимый набор вершин
Максимальное независимое множество вершин из G с максимальным количеством вершин называется максимальным независимым множеством вершин.
пример
Рассмотрим следующие подмножества из приведенного выше графика —
S 1 = {e} S 2 = {e, f} S 3 = {a, g, c} S 4 = {e, d}
Только S 3 является максимальным независимым множеством вершин, поскольку оно охватывает наибольшее количество вершин. Количество вершин в максимальном независимом множестве вершин группы G называется независимым числом вершин группы G (β 2 ).
пример
For the complete graph K n , Vertex covering number = α 2 = n−1 Vertex independent number = β 2 = 1 You have α 2 + β 2 = n In a complete graph, each vertex is adjacent to its remaining (n − 1) vertices. Therefore, a maximum independent set of K n contains only one vertex. Therefore, β 2 =1 and α 2 =|v| − β 2 = n-1
Примечание. Для любого графа «G» = (V, E)
α 2 + β 2 = | v |
Если ‘S’ является независимым множеством вершин ‘G’, то (V — S) является покрытием вершин G.
std :: set — cppreference.com
std :: set
— это ассоциативный контейнер, содержащий отсортированный набор уникальных объектов типа Key
. Сортировка производится с помощью ключевой функции сравнения Сравнить. Операции поиска, удаления и вставки имеют логарифмическую сложность. Наборы обычно реализуются в виде красно-черных деревьев.
Везде, где стандартная библиотека использует требования сравнения, уникальность определяется с помощью отношения эквивалентности. Точнее говоря, два объекта a
и b
считаются эквивалентными, если ни один из них не сравнивается меньше, чем другой: ! Comp (a, b) &&! Comp (b, a)
.
std :: set
соответствует требованиям Container, AllocatorAwareContainer, AssociativeContainer и ReversibleContainer.
[править] Типы членов
[править] Функции-члены
создает набор (общедоступная функция-член) [править] | |
разрушает набор (общедоступная функция-член) [править] | |
присваивает значения контейнеру (общедоступная функция-член) [править] | |
возвращает связанный распределитель (общедоступная функция-член) [править] | |
Итераторы | |
возвращает итератор в начало (общедоступная функция-член) [править] | |
возвращает итератор до конца (общедоступная функция-член) [править] | |
возвращает обратный итератор к началу (общедоступная функция-член) [править] | |
возвращает обратный итератор до конца (общедоступная функция-член) [править] | |
Вместимость | |
проверяет, пуст ли контейнер. (общедоступная функция-член) [править] | |
возвращает количество элементов (общедоступная функция-член) [править] | |
возвращает максимально возможное количество элементов (общедоступная функция-член) [править] | |
Модификаторы | |
очищает содержимое (общедоступная функция-член) [править] | |
вставляет элементы или узлы (начиная с C ++ 17) (общедоступная функция-член) [править] | |
создает элемент на месте (общедоступная функция-член) [править] | |
создает элементы на месте, используя подсказку (общедоступная функция-член) [править] | |
стирает элементы (общедоступная функция-член) [править] | |
меняет местами содержимое (общедоступная функция-член) [править] | |
извлекает узлы из контейнера (общедоступная функция-член) [править] | |
соединяет узлы из другого контейнера. (общедоступная функция-член) [править] | |
Поиск | |
возвращает количество элементов, соответствующих определенному ключу (общедоступная функция-член) [править] | |
находит элемент с определенным ключом (общедоступная функция-член) [править] | |
проверяет, содержит ли контейнер элемент с определенным ключом (общедоступная функция-член) [править] | |
возвращает диапазон элементов, соответствующих определенному ключу. (общедоступная функция-член) [править] | |
возвращает итератор к первому элементу не менее , чем данный ключ (общедоступная функция-член) [править] | |
возвращает итератор к первому элементу , большему , чем данный ключ (общедоступная функция-член) [править] | |
Наблюдатели | |
возвращает функцию, которая сравнивает ключи (общедоступная функция-член) [править] | |
возвращает функцию, которая сравнивает ключи в объектах типа value_type (общедоступная функция-член) [править] |
[править] Функции, не являющиеся членами
std :: set :: set — cppreference.com
набор (); явный набор (const Compare & comp, const Allocator & alloc = Allocator ()); | ||
явный набор (const Allocator & alloc); | (1) | (начиная с C ++ 11) |
(2) | ||
template set (InputIt first, InputIt last, const Allocator & alloc = Allocator ()); | ||
template set (InputIt first, InputIt last, const Allocator & alloc) : set (first, last, Compare (), alloc) {} | (начиная с C ++ 14) | |
набор (набор констант и прочее); | (3) | |
набор (const set & other, const Allocator & alloc); | (3) | (начиная с C ++ 11) |
комплект (комплект и прочее); | (4) | (начиная с C ++ 11) |
set (set && other, const Allocator & alloc); | (4) | (начиная с C ++ 11) |
(5) | ||
set (std :: initializer_list const Сравнить & comp = Compare (), const Allocator & alloc = Allocator ()); | (начиная с C ++ 11) | |
set (std :: initializer_list : set (init, Compare (), alloc) {} | (начиная с C ++ 14) | |
Создает новый контейнер из различных источников данных и, при необходимости, использует предоставленный пользователем распределитель alloc
или объект функции сравнения comp
.
2) Конструктор диапазона. Создает контейнер с содержимым диапазона [первый, последний)
. Если несколько элементов в диапазоне имеют ключи, которые сравнивают эквивалент, не указано, какой элемент вставлен (ожидает LWG2844).
3) Копировать конструктор. Создает контейнер с копией содержимого и других
. Если alloc
не указан, распределитель получается путем вызова std :: allocator_traits
4) Переместить конструктор. Создает контейнер с содержимым других
, используя семантику перемещения. Если alloc
не предоставлено, распределитель получается путем перестановки из распределителя, принадлежащего другим
.
5) Конструктор списка инициализаторов. Создает контейнер с содержимым списка инициализаторов init
. Если несколько элементов в диапазоне имеют ключи, которые сравнивают эквивалент, не указано, какой элемент вставлен (ожидает LWG2844).
[править] Параметры
разместить | — | для использования всех распределений памяти этого контейнера |
комп. | — | объект функции сравнения, используемый для всех сравнений ключей |
первая, последняя | — | диапазон для копирования элементов из |
другое | — | другой контейнер, который будет использоваться в качестве источника для инициализации элементов контейнера с помощью |
инициализации | — | список инициализаторов для инициализации элементов контейнера с помощью |
Требования к типу | ||
– InputIt должен соответствовать требованиям LegacyInputIterator. | ||
— Compare должно соответствовать требованиям Compare. | ||
— Распределитель должен соответствовать требованиям Распределителя. |
[править] Сложность
1) Константа
2) N log (N), где N = std :: distance (first, last) в целом, линейно в N
, если диапазон уже отсортирован по value_comp ()
.
3) Линейные размером прочие
4) Константа. Если , то дается
и alloc! = Other.get_allocator (), затем линейный.
5) N log (N), где N = init.size ()) в целом, линейно в N
, если init
уже отсортирован по value_comp ()
.
[править] Исключения
Звонки в Allocator :: allocate
могут вызывать.
[править] Примечания
После построения перемещения контейнера (перегрузка (4)) ссылки, указатели и итераторы (кроме конечного итератора) на другие
остаются действительными, но относятся к элементам, которые теперь находятся в * this.Текущий стандарт предоставляет эту гарантию посредством общего заявления в [container.requirements.general] / 12, а более прямая гарантия рассматривается через LWG 2321.
[править] Пример
#include#include <строка> #include <набор> #include struct Point {двойной x, y; }; struct PointCmp { bool operator () (const Point & lhs, const Point & rhs) const { return std :: hypot (lhs.x, lhs.y) a; a.insert («кот»); a.insert («собака»); a.insert («конь»); for (auto & str: a) std :: cout << str << ''; std :: cout << '\ n'; // (2) Конструктор итератора std :: set b (a.find ("собака"), a.end ()); for (auto & str: b) std :: cout << str << ''; std :: cout << '\ n'; // (3) Копировать конструктор std :: set c (a); c.insert («другая лошадь»); for (auto & str: c) std :: cout << str << ''; std :: cout << '\ n'; // (4) Конструктор перемещения std :: set d (std :: move (a)); for (auto & str: d) std :: cout << str << ''; std :: cout << '\ n'; std :: cout << "перемещено из набора равно"; for (auto & str: a) std :: cout << str << ''; std :: cout << '\ n'; // (5) Конструктор списка инициализаторов std :: set e {"один", "два", "три", "пять", "восемь"}; for (auto & str: e) std :: cout << str << ''; std :: cout << '\ n'; // пользовательское сравнение std :: set z = {{2, 5}, {3, 4}, {1, 1}}; z.вставить ({1, -1}); // это не удается, потому что величина 1, -1 равна 1,1 for (auto & p: z) std :: cout << '(' << p.x << ',' << p.y << ")"; std :: cout << '\ n'; }
Выход:
кошка собака лошадь собака лошадь другая лошадь кошка собака лошадь кошка собака лошадь перенесенный из набора восемь пять один три два (1,1) (3,4) (2,5)
[править] Отчеты о дефектах
Следующие ниже отчеты о дефектах, изменяющих поведение, были применены задним числом к ранее опубликованным стандартам C ++.
DR | Применяется к | Behavior как опубликовано | Правильное поведение |
---|---|---|---|
LWG 2193 | C ++ 11 | конструктор по умолчанию явный | сделано неявным |
[править] См. Также
std :: set :: extract - cppreference.com
node_type extract (позиция const_iterator); | (1) | (начиная с C ++ 17) |
извлечение типа узла (const key_type & x); | (2) | (начиная с C ++ 17) |
1) Отключает узел, содержащий элемент, на который указывает позиция
, и возвращает дескриптор узла, которому он принадлежит
2) Если в контейнере есть элемент с ключом, эквивалентным x
, отсоединяет узел, содержащий этот элемент, от контейнера и возвращает дескриптор узла, которому он принадлежит.В противном случае возвращает дескриптор пустого узла.
В любом случае никакие элементы не копируются или перемещаются, только внутренние указатели узлов контейнера повторно указывают (может произойти перебалансировка, как с erase ())
Извлечение узла делает недействительными итераторы для извлеченного элемента. Указатели и ссылки на извлеченный элемент остаются действительными, но не могут использоваться, пока элемент принадлежит дескриптору узла: они становятся пригодными для использования, если элемент вставлен в контейнер.
[править] Параметры
позиция | - | действительный итератор в этот контейнер |
х | - | ключ для идентификации узла, который нужно извлечь |
[править] Возвращаемое значение
Дескриптор узла, которому принадлежит извлеченный элемент, или дескриптор пустого узла в случае, если элемент не найден в перегрузке (2)
[править] Сложность
1) амортизированная постоянная
2) журнал (а.размер ())
[править] Примечания
extract - единственный способ извлечь объект, предназначенный только для перемещения, из набора
установитьs; s.emplace (...); move_only_type mot = move (s.extract (s.begin ()). значение ());
[править] Пример
#include <алгоритм> #include#include <набор> int main () { std :: set cont {1, 2, 3}; auto print = [] (const int & n) {std :: cout << "" << n; }; std :: cout << "Начало:"; std :: for_each (продолж.begin (), cont.end (), печать); std :: cout << '\ n'; // Извлекаем дескриптор узла и меняем ключ авто nh = cont.extract (1); nh.value () = 4; std :: cout << "После извлечения и перед вставкой:"; std :: for_each (cont.begin (), cont.end (), печать); std :: cout << '\ n'; // Вставляем дескриптор узла обратно cont.insert (перемещение (nh)); std :: cout << "Конец:"; std :: for_each (cont.begin (), cont.end (), печать); std :: cout << '\ n'; }
Выход:
Начало: 1 2 3 После извлечения и перед вставкой: 2 3 Конец: 2 3 4
[править] См. Также
соединяет узлы из другого контейнера. (общедоступная функция-член) [править] | |
вставляет элементы или узлы (начиная с C ++ 17) (общедоступная функция-член) [править] | |
стирает элементы (общедоступная функция-член) [править] |
Работа с переменными с использованием действий c: set и c: remove
JSTL предоставляет действие c: set
для инициализации или установки переменной веб-приложения в определенной области.Использование c: set
выглядит следующим образом:
& lt; c: set var = "variable" value = "value" scope = "scope" / & gt; |
В атрибуте var
вы можете объявить переменную или обратиться к ней. Атрибут value
указывает значение переменной. Если вы хотите установить область действия переменной, вы можете использовать область действия
a ttribute.Атрибут scope
принимает любые допустимые области переменных JSP, такие как страница, запрос, сеанс и приложение.
Давайте посмотрим на пример использования действия c: set
.
value = "10" scope = "session" /> |
В этом примере мы установили для переменной ИД пользователя
значение 10 с областью действия сеанса
.Затем мы распечатываем его, используя действие c: out.
Другое использование действия c: set
- установить значение свойства объекта:
property = "property name" value = "значение свойства" /> |
Вы назначаете объект атрибуту target
, имя свойства - атрибуту property
, а значение этого свойства - атрибуту value
.
Давайте посмотрим на пример использования c: set для установки свойства объекта.
1 2 3 4 5 6 7 8 9 10 11 13 140007 000 16 17 18 19 20 21 22 23 24 25 26 27 28 30 000 0002 29 000 33 34 35 36 37 38 39 40 | пакет ком.jsptutorial; публичный класс Person { private String firstName; частная строка lastName; публичное лицо () { this.firstName = ""; this.lastName = ""; } / ** * @return the firstName * / public String getFirstName () { return firstName; } / ** * @param firstName первое имя для установки * / public void setFirstName (String firstName) { this.firstName = firstName; } / ** * @return the lastName * / public String getLastName () { return lastName; } / ** * @param lastName последнее имя для установки * / public void setLastName (String lastName) { this.lastName = lastName; } } |
В приведенном выше коде у нас есть класс человека.Мы будем использовать этот класс людей как JavaBean на странице JSP.
1 2 3 4 5 6 7 8 9 10 11 13 140007 000 000 16 17 18 19 20 21 22 23 | <% @ page contentType = "text / html" pageEncoding = "UTF " import "com.jsptutorial. * "%> <% @ taglib uri =" http://java.sun.com/jsp/jstl/core " prefix =" c "%> /> property = "firstName" value = "Jack" /> property = "lastName" value = "Daniel" /> |
В приведенном выше коде мы используем стандартное действие useBean
для инициализации объекта
человека. Затем мы используем c: set
, чтобы установить свойство firstName
и lastName
этого объекта. Мы отображаем fullName
объекта person в веб-браузере.
Обратите внимание, что в атрибуте target
принимается только объект, поэтому вам следует не забудьте выражение $ {object_name}
Помимо действия c: set, JSTL также предоставляет действие c: remove, которое позволяет вам удалить переменную из определенной области.Синтаксис c: remove is action выглядит следующим образом:
scope = "scope" /> |
Например, если вы хотите удалите переменную сеанса userid
, вы можете использовать c: remove следующим образом:
|
- Было ли это руководство полезным?
- Да Нет
Блок питания
Power Set - это набор из всех поднаборов набора .
ОК? Понял? Может пример поможет ...
Все подмножества
Для набора {a, b, c}:
- Пустой набор {} является подмножеством {a, b, c}
- И это подмножества: {a}, {b} и {c}
- И это также подмножества: {a, b}, {a, c} и {b, c}
- И {a, b, c} является подмножеством {a, b, c}
И в итоге получаем Power Set из {a, b, c}:
P (S) = {{}, {a}, {b}, {c}, {a, b}, {a, c}, {b, c}, {a, b, c}}
Думайте об этом как о различных способах выбора элементов (порядок элементов не имеет значения), включая выбор ни одного или всех.
Пример: В магазине есть банановое, шоколадное и лимонное мороженое.
Что вы заказываете?
- Совсем ничего: {}
- Или, может быть, просто банан: {банан}. Или просто {шоколад} или просто {лимон}
- Или два вместе: {банан, шоколад} или {банан, лимон} или {шоколад, лимон}
- Или все три! {банан, шоколад, лимон}
Вопрос: если в магазине есть еще и клубничный вкус, какие у вас варианты? Решение позднее .
Сколько подмножеств
Легко! Если в исходном наборе n элементов, то в Power Set будет 2 n элементов
Пример: {a, b, c} имеет три члена ( a , b и c ).
Итак, Power Set должен иметь 2 3 = 8, что и есть, как мы уже выяснили ранее.
Обозначение
Количество членов набора часто записывается как | S |, поэтому, когда S имеет n членов, мы можем написать:
| P (S) | = 2 n
Пример: для набора S = {1,2,3,4,5} сколько элементов будет иметь набор мощности?
Ну, у S 5 участников, поэтому:
| P (S) | = 2 n = 2 5 = 32
Через минуту вы увидите, почему количество членов равно 2
Это двоичный код!
А вот и самое удивительное.Чтобы создать Power Set, запишите последовательность двоичных чисел (используя n цифр), а затем позвольте "1" означать "поместить соответствующий элемент в это подмножество".
Таким образом, "101" заменяется на 1 a , 0 b и 1 c , чтобы получить нас {a, c}
Как это:
abc | Подмножество | |
---|---|---|
0 | 000 | {} |
1 | 001 | {c} |
2 | 010 | {b} |
3 | 011 | {b, c} |
4 | 100 | {а} |
5 | 101 | {a, c} |
6 | 110 | {a, b} |
7 | 111 | {a, b, c} |
Ну, они не в хорошем порядке, но все они есть.
Другой пример
Едем! У нас есть четыре вкуса мороженого: банан, шоколад, лимон и клубника . Сколько разных способов получить их?
Давайте использовать буквы для ароматов: {b, c, l, s}. Примеры выбора включают:
- {} (ничего, вы на диете)
- {b, c, l, s} (любой вкус)
- {b, c} (банан и шоколад хороши вместе)
- и т. Д.
Сделаем таблицу «бинарной»:
bcls | Подмножество | |
---|---|---|
0 | 0000 | {} |
1 | 0001 | {s} |
2 | 0010 | {l} |
3 | 0011 | {l, s} |
... | ... и т.д .. | ... и т.д ... |
12 | 1100 | {b, c} |
13 | 1101 | {b, c, s} |
14 | 1110 | {b, c, l} |
15 | 1111 | {b, c, l, s} |
И результат (более аккуратно):
P = {{}, {b}, {c}, {l}, {s}, {b, c}, {b, l}, {b, s}, {c, l}, {c, s}, {l, s}, {b, c, l}, {b, c, s},
{b, l, s}, {c, l, s}, {b, c, l, s }}
СимметрияВ приведенной выше таблице вы заметили, что первое подмножество пусто, а в последнем есть все члены? Но вы также заметили, что во втором подмножестве есть «s», а во втором последнем подмножестве есть все , кроме «s»? | |
На самом деле, когда мы зеркально отражаем эту таблицу примерно посередине, мы видим, что есть своего рода симметрия. Это потому, что двоичные числа (которые мы использовали, чтобы помочь нам получить все эти комбинации) имеют красивый и элегантный узор. |
Простой пример
Power Set может быть полезен в неожиданных областях.
Я хотел найти все множители (не только простые множители, но все множителей) числа.
Я мог проверить все возможные числа: я мог проверить 2, 3, 4, 5, 6, 7 и т.д ...
Это заняло много времени для больших чисел.
Но могу ли я попытаться объединить основные факторы?
Позвольте мне посмотреть, простые множители 510 равны 2 × 3 × 5 × 17 (с использованием инструмента простых множителей).
Итак, все факторы из 510 равны:
- 2, 3, 5 и 17,
- 2 × 3, 2 × 5 и 2 × 17, а также
- 2 × 3 × 5 и 2 × 3 × 17 и ...
- .. ага! Как и мороженое, мне нужен Power Set!
А вот что у меня:
2,3,5,17 | Подмножество | Факторы 510 | |
---|---|---|---|
0 | 0000 | {} | 1 |
1 | 0001 | {17} | 17 |
2 | 0010 | {5} | 5 |
3 | 0011 | {5,17} | 5 × 17 = 85 |
4 | 0100 | {3} | 3 |
5 | 0101 | {3,17} | 3 × 17 = 51 |
... и т.д ... | ... и т.д ... | ... и т.д ... | |
15 | 1111 | {2,3,5,17} | 2 × 3 × 5 × 17 = 510 |
А результат? Множители 510: 1, 2, 3, 5, 6, 10, 15, 17, 30, 34, 51, 85, 102, 170, 255 и 510 (а также −1, −2, −3 и т. Д. ). См. Инструмент All Factors Tool .
Автоматическая
Я не мог устоять перед автоматическим доступом к Power Sets.
Итак, если вам нужен набор мощности, попробуйте Power Set Maker.
std :: set - cppreference.com
std :: set
- это ассоциативный контейнер, содержащий отсортированный набор уникальных объектов типа Key
. Сортировка осуществляется с помощью функции ключевого сравнения Сравнить
. Операции поиска, удаления и вставки имеют логарифмическую сложность. Наборы обычно реализуются в виде красно-черных деревьев.
Везде, где стандартная библиотека использует концепцию Compare
, уникальность определяется с помощью отношения эквивалентности.Точнее говоря, два объекта a
и b
считаются эквивалентными, если ни один из них не сравнивается меньше, чем другой: ! Comp (a, b) &&! Comp (b, a)
.
std :: set
соответствует требованиям Container
, AllocatorAwareContainer
, AssociativeContainer
и ReversibleContainer
.
Типы элементов
Тип элемента | Определение | ||||
key_type | Ключ | ||||
value_type | Ключ | ||||
size_type | Целочисленный тип без знака (обычно std :: size_t) | ||||
difference_type | Целочисленный тип со знаком (обычно std :: ptrdiff_t) | ||||
key_compare | Сравнить | ||||
value_compare | Сравнить | ||||
Тип_распределителя | Распределитель | ||||
ссылка |
| ||||
const_reference |
| ||||
указатель | |||||
const_pointer | |||||
итератор | |||||
const_iterator | Постоянный двунаправленный итератор | ||||
reverse_iterator | std :: reverse_iterator | ||||
const_reverse_iterator | std :: reverse_iterator | ||||
тип_узла | специализация дескриптора узла, представляющего узел контейнера (начиная с C ++ 17) | ||||
insert_return_type | , описывающий результат вставки node_type , специализацияtemplate создается с аргументами шаблона |
Функции-члены
создает набор (общедоступная функция-член) | |
разрушает набор (общедоступная функция-член) | |
присваивает значения контейнеру (общедоступная функция-член) | |
возвращает связанный распределитель (общедоступная функция-член) | |
Итераторы | |
возвращает итератор в начало (общедоступная функция-член) | |
возвращает итератор до конца (общедоступная функция-член) | |
возвращает обратный итератор в начало (общедоступная функция-член) | |
возвращает обратный итератор до конца (общедоступная функция-член) | |
Емкость | |
проверяет, пуст ли контейнер (общедоступная функция-член) | |
возвращает количество элементов (общедоступная функция-член) | |
возвращает максимально возможное количество элементов (общедоступная функция-член) | |
Модификаторы | |
очищает содержимое (общедоступная функция-член) | |
вставляет элементы или узлы (начиная с C ++ 17) (общедоступная функция-член) | |
создает элемент на месте (общедоступная функция-член) | |
создает элементы на месте, используя подсказку (общедоступная функция-член) | |
стирает элементы (общедоступная функция-член) | |
меняет местами содержимое (общедоступная функция-член) | |
извлекает узлы из контейнера (общедоступная функция-член) | |
соединяет узлы из другого контейнера (общедоступная функция-член) | |
Поиск | |
возвращает количество элементов, соответствующих определенному ключу (общедоступная функция-член) | |
находит элемент с определенным ключом (общедоступная функция-член) | |
возвращает диапазон элементов, соответствующих определенному ключу (общедоступная функция-член) | |
возвращает итератор для первого элемента не менее , чем данный ключ (общедоступная функция-член) | |
возвращает итератор для первого элемента на больше, чем на , чем данный ключ (общедоступная функция-член) | |
Наблюдатели | |
возвращает функцию, которая сравнивает ключи (общедоступная функция-член) | |
возвращает функцию, которая сравнивает ключи в объектах типа value_type (общедоступная функция-член) |
Функции, не являющиеся членами
Банкноты
Типы элементов итератор
и const_iterator
могут быть псевдонимами одного и того же типа.