Лабораторная работа 3
Задание. Написать программу, которая для заданного множества из n элементов (n≤8) выводит все подмножества данного множества и генерирует все сочетания с повторениями из n по k (k ≤16).
Контрольный пример:
При n=3 множество {a,b,c}.
Подмножества: {} {a} {b} {a, b} {c} {a, c} {b, c} {a, b, c}.
Все подмножества данного множества соответствуют двоичным векторам длины 4 ( где 1 на i-том месте слева означает наличие i-го элемента в подмножестве, а 0 – его отсутствие). Их количество равно 2n=23=8.
0 0 0 соответствует пустому множеству {},
0 0 1 соответствует множеству {a},
0 1 0 соответствует множеству {b},
0 1 1 соответствует множеству {a, b},
1 0 0 соответствует множеству {c},
1 0 1 соответствует множеству {a, c},
1 1 0 соответствует множеству {b, c},
1 1 1 соответствует множеству {a, b, c}.
Сочетания с повторениями из 3 по 4:
{а, а, а, а}, {а, а, а, b}, {а, а, b, b}, {а, b, b, b}, {b, b, b, b},
{а, а, а, c}, {а, а, c, c}, {а, c, c, c}, {c, c, c, c}, {а, а, b, с},
{а, b, b, с}, {а, b, c, c}, {b, b, c, c}, {b, c, c, c}, {b, b, b, c}.
Сочетаниям с повторениями из 3 по 4 соответствуют всевозможные двоичные вектора длины 4+3-1=6, содержащие ровно 3-1=2 нуля и 4 единицы. Их количество равно С64=6!/(4!*2!)=3*5=15. Нули играют роль разделителей групп, а k единиц в i – той группе означает, что элемент i-го типа повторяется в сочетании k раз.
вектор |
множество |
вектор |
множество |
вектор |
множество |
111100 |
{а, а, а, а} |
111001 |
{а, а, а, c} |
101101 |
{а, b, b, с} |
111010 |
{а, а, а, b} |
110011 |
{а, а, c, c} |
101011 |
{а, b, c, c} |
110110 |
{а, а, b, b} |
100111 |
{а, c, c, c} |
011011 |
{b, b, c, c} |
101110 |
{а, b, b, b} |
001111 |
{c, c, c, c} |
010111 |
{b, c, c, c} |
011110 |
{b, b, b, b} |
110101 |
{а, а, b, с} |
011101 |
{b, b, b, c} |
Лабораторная работа 4
Задание. Написать программу, которая по графу, заданному с помощью матрицы смежности, строит:
матрицу инцидентности;
список векторов смежности;
множество вершин и множество ребер графа.
Число вершин графа n задается произвольно в диапазоне 1-100 и вводится с клавиатуры. Программа должна предусматривать работу с ориентированным и неориентированным графами.
Контрольный пример:
Матрица смежности |
Матрица инцидентности |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0
0
0
1
0
0
0
1
0
1
1
0
0
0
1
0
0
1
0
0
0
1
0
1
0 |
-1
0
0
1
0
0
0
0
0
-1
-1
0
0
0
1
0
0
1
0
-1
-1
1
0
0
1
0
0
0
0
-1
0
1
0
0
1
0
1
0
-1
-1 |
Список векторов смежности
(4);
(3,5);
(1,5);
(3);
(2,4).
Множество вершин {1,2,3,4,5}.
Множество ребер {(1,4)(2,3)(2,5)(3,1)(3,5)(4,3)(5,2)(5,4)}.
Изображение графа
