- •Дискретная математика
- •Введение
- •Лабораторная работа №1
- •1. Теоретический раздел
- •2. Примеры решения задач с использованием множеств
- •3. Контрольные вопросы
- •4. Задания для самостоятельного решения
- •Лабораторная работа №2
- •1. Теоретический раздел
- •2. Примеры решения задач
- •3. Контрольные вопросы
- •4. Задания для самостоятельного решения
- •Лабораторная работа №3
- •1. Теоретический раздел
- •2. Примеры решения задач
- •3. Контрольные вопросы
- •4. Задания для самостоятельного решения
- •Лабораторная работа №4
- •1. Теоретический раздел
- •2. Описание алгоритма фронта волны
- •3. Контрольные вопросы
- •4. Задания для самостоятельного решения
- •Лабораторная работа №5
- •1. Теоретический раздел
- •2. Описание алгоритма построения минимального остовного дерева
- •3. Контрольные вопросы
- •4. Задания для самостоятельного решения
- •Лабораторная работа №6
- •1. Теоретический раздел
- •2. Описание алгоритмов нахождения кратчайшего пути
- •2.1. Алгоритм Дейкстры нахождения минимального пути
- •2.2. Алгоритм нахождения минимального пути Форда-Беллмана
- •3. Контрольные вопросы
- •4. Задания для самостоятельного решения
- •Лабораторная работа №7
- •1. Теоретический раздел
- •2. Описание алгоритма нахождения полного потока
- •3. Контрольные вопросы
- •4. Задания для самостоятельного решения
- •Лабораторная работа №8
- •1. Теоретический раздел
- •2. Описание алгоритма нахождения максимального потока
- •3. Контрольные вопросы
- •4. Задания для самостоятельного решения
- •Литература
- •Дискретная математика
2. Примеры решения задач с использованием множеств
Пример 1.
Написать подпрограмму, которая вычисляет значения данного выражения: , для любых множеств А, В, С и Д. Подпрограмму оформить в виде процедуры.
{процедура вычисления значения выражения}
Procedure Calculation(A,B,C,D:variety_type; var variety:variety_type);
Var i:byte;
Begin
variety := ((A*B)+C)-D;
End;
{процедура ввода множества}
Procedure InputVariety(var variety:variety_type);
Var i:integer;
elem,kol:byte;
Begin
writeln('Введите количество элементов множества');
readln(kol);
for i:=1 to kol do
begin
write('Введите ',i,'-й элемент множества ');
readln(elem);
variety := variety +[elem];
end;
End;
{процедура вывода множества}
Procedure OutputVariety(variety:variety_type);
Var
i:byte;
Begin
write('Res=[');
for i:=0 to 255 do
if i in variety then write(i,' ');
writeln(']');
End;
3. Контрольные вопросы
Что такое множество?
Перечислите операции над множествами и проиллюстрируйте их на диаграммах Эйлера-Венна.
Объединение множеств и его свойства.
Пересечение множеств и его свойства.
Разность множеств и ее свойства.
Дополнение и его свойства.
Множества в программировании.
4. Задания для самостоятельного решения
Выполнить вручную следующие задания:
1. Доказать следующие равенства:
(A B) \ C = (A \ C) (B\C);
A \ B=A \ (A ∩ B);
= (A ∩ B);
A ∩ = A \ B;
A (B \ C) = (A B) ∩ (A \ C);
B (A \ B) = A B;
B ∩ (A \ B) = Ø.
2. Упростить следующие выражения:
A \ (A \ (A \ B));
A ;
(A B) ∩ (A \ B);
(A B) \ (A \ B);
A (B ∩ (A \ B)) (B \ A);
.
3. Построить множество точек плоскости, координаты которых удовлетворяю следующим соотношениям:
;
0 < x < y ≤ 2x;
1 < x2 + y2 ≤ 4;
0 < 1/x ≤ y < -x +10/3;
4. Изобразить на координатной плоскости множества:
{1;2} × [1;2];
{1;2} × ([1;2] \ (1;2));
{1;2}2 \ {(x,y) R2|y>x};
{(x,y) [0;+∞), | x2 + y2 ≤ 1}.
5. Доказать следующие соотношения:
= B;
A (B \ C) = (A B) ∩ (A );
B (A \ B) = A B;
B ∩ (A \ B) = Ø;
A \ (A \ B) = A ∩ B;
A \ (B C) = (A \ B) ∩ (A \ C);
A \ (B ∩ C) = (A \ B) (A \ C).
6. Какие из следующих множеств конечны, а какие бесконечны? Найдите все элементы конечных множеств:
X={x|x R, x2-5x+4=0};
X= {x|x N, x2-5x+4>0};
X={x|x N, (y N) 2x+3y = 24};
X={x|x N, (y Z) 2x+3y = 24}.
7. Найти пересечение множеств всех прямоугольников и всех ромбов; множество всех параллелограммов и всех четырехугольников с равными диагоналями.
8. Решить системы уравнений:
где B A C;
где B A, A ∩ C = Ø;
где B A C.
9. Доказать следующие соотношения:
A × (B C) = (A × B) (A × C);
A × (B ∩ C) = (A × B) ∩ (A × C);
A × (B \ C) = (A × B) \ (A × C);
(A ∩ B) × (C ∩ D) = (A × C) ∩ (B × D).
10. Даны множества A={1,6,43,32,9,16,12,33,3,15}, B={1,3,22,15,9,35,16}, C={12,6,33,3,15,21}, U={1,2,3,…50}. Проиллюстрировать с помощью диаграмм Венна справедливость следующих соотношений:
A ∩ (B ∩ C) = (A ∩ B) ∩ C
A (B C) = (A B) C
A (A ∩ B) = A
A ∩ (A B) = A
(A ∩ B) (A ) = A
A ( ∩ B) = A B
Написать программы, вычисляющие значения следующих выражений, результат проверить решением вручную.
1. Найти A B , A ∩ B, A\B, B\A, если
A= {-1; -1\2; 1\2; 1}, B={0;1;2};
A= (0;5), B=(1;8];
A= (-∞;1) (5;+∞), B=[0;6].
2. Найти A B C, A ∩ B ∩ C, (A ∩ B) C, A ∩ (B C), если
A=[-2;2], B=(0;5), C=(1;+∞);
A={0;2;4;6}, B={0,1,3,5}, C={2,3,4};
A={{1;2},{1;3},{2}}, B={{1;2;4},{2;3},{1}}, C={{1;3},{1}}.
3. Найти дополнение множества A до множества U, если
U= {1;2;3;4;5;6}, A={1;3;6};
U= Z, A= {a|a Z, a делится на 2 или на 3}.
4. Найти все элементы множеств A × B, B × A, если
A= {1;2}, B={3;4;5};
A= {1;2}, B={1;2;3};
A={1}, B= {1;2;3};
A= Ø, B= {1;2;3;4}.
5. Найти область определения и множество значений соответствий S A×B:
A={1;2;3;4;5}, B={12;16}, S={(a,b)|a A, b B, a делит b};
A = Z2, B = N, S = {(a,b)|a=, z Z, b N, a=b};
A = N \ {0}, B = Q \ {0}, S = {(a,b)| a A, b B, a∙b Z};
A = Z, B = Q, S = {(a,b)|a A, b B, a∙b = 1};
A = Z, B = Q, S = {(a,b)|a A, b B, a=2b}.
6. Даны множества: U={a,b,c,d}; X={a,c}; Y={a,b,d}; Z={b,c}. Найти:
X ∩
(X ∩ Z)
X (Y ∩ Z)
(X Y) ∩ (X Z)
X Y
(X Y) Z
X (Y Z)
X \
(X \ Z) (Y \ Z)
7. Осуществить все операции над множествами A ={2,4,6,8}; B={3,6,9}, если U ={1,2,3,…,10}.
8. Найти элементы следующих множеств:
X = {x|x R, -3x+2=0};
X = {x|x R, <3};
множество всех двузначных натуральных чисел, делящихся на 5, но не делящихся на 10;
множество всех чисел от 0 до 30, которые можно представить в виде суммы квадратов двух натуральных чисел;
множество всех трехзначных телефонных номеров, сумма цифр которых равна 3.