Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб_дискрет.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
233.98 Кб
Скачать

Лабораторная работа 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.

  1. 0 0 0 соответствует пустому множеству {},

  1. 0 0 1 соответствует множеству {a},

  1. 0 1 0 соответствует множеству {b},

  2. 0 1 1 соответствует множеству {a, b},

  3. 1 0 0 соответствует множеству {c},

  4. 1 0 1 соответствует множеству {a, c},

  5. 1 1 0 соответствует множеству {b, c},

  6. 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

Задание. Написать программу, которая по графу, заданному с помощью матрицы смежности, строит:

  1. матрицу инцидентности;

  1. список векторов смежности;

  1. множество вершин и множество ребер графа.

Число вершин графа 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

Список векторов смежности

  1. (4);

  2. (3,5);

  3. (1,5);

  4. (3);

  5. (2,4).

Множество вершин {1,2,3,4,5}.

Множество ребер {(1,4)(2,3)(2,5)(3,1)(3,5)(4,3)(5,2)(5,4)}.

Изображение графа