
- •Введение
- •Библиография
- •Теория множеств
- •Множества и подмножества
- •Мощность множества
- •Операции над множествами
- •Декартово произведение
- •Круги Эйлера
- •Мультимножества
- •Бинарные отношения
- •Упорядоченные множества
- •Множества в информатике и программировании
- •Библиография
- •Комбинаторная теория
- •Исчисление конечных сумм
- •Правило сложения
- •Правило умножения
- •Метод включения и исключения
- •Перестановки
- •Размещения
- •Сочетания
- •Перестановки с повторениями
- •Размещения с повторениями
- •Сочетания с повторениями
- •Бином Ньютона и полиномиальная формула
- •Разбиения
- •Генерация всех перестановок
- •Генерация всех подмножеств
- •Генерация всех размещений с повторениями
- •Генерация сочетаний с повторениями
- •Генерация всех сочетаний без повторений
- •Генерация всех размещений без повторений
- •Генерация всех разбиений
- •Библиография
- •Теория графов
- •Основные понятия
- •Представление графов
- •Матрица смежности
- •Матрица инцидентности
- •Список связности
- •Список рёбер
- •Обход графа в глубину
- •Обход графа в ширину
- •Маршруты, цепи и циклы
- •Связность
- •Сочленения
- •Мосты
- •Деревья
- •Эйлеровы графы
- •Гамильтоновы графы
- •Планарные графы
- •Покрытие и независимость
- •Ориентированные графы
- •Топологическая сортировка
- •Библиография
- •Приложение Б. Рекуррентные соотношения
- •Задача о ханойских башнях
- •Задача о разрезании пиццы
- •Задача Иосифа Флавия
- •Библиография
- •Приложение В. Элементы теории чисел
- •Делимость и кратность
- •Алгоритм Евклида
- •Простые числа
- •Сравнения
- •Библиография
- •Библиография
22 |
Симоненко Е.А. Дискретная математика. Лекции |
Для i от 1 до n D[r] := X[i];
Decart(X, D, r + 1);
Конец.
Вызов: Decart(X, D, 1).
Генерация сочетаний с повторениями
Аналогично рассмотрим генерацию сочетаний с повторениями на примере множества
X ={1,2, 3} :
(1,1),(1,2),(1,3)
(2,2),(2,3) (3,3)
Также часто встречающаяся последовательность. Для сочетаний по два и по три можно использовать вложенные циклы, а в остальных случаях – рекурсию:
Co:
Вход: X – массив с n элементами, представляющий исходное множество; C – массив с k элементами, представляющий искомый кортеж; r – текущая обрабатываемая координата в кортеже C; m – номер текущего выбранного элемента во множестве X.
Начало:
Если r == k + 1 То
// что-то делаем с кортежем C
Иначе
Для i от m до n C[r] := X[i];
Co(X, C, r + 1, m);
Конец.
Вызов: Co(X, C, 1, 1).
Генерация всех сочетаний без повторений
Небольшое рассуждение должно навести на мысль, что алгоритм генерации всех сочетаний без повторений аналогичен алгоритмы генерации всех сочетаний с повторениями за той лишь разницей, что при очередном рекурсивном вызове Co() будем передавать не m, а m+1, то есть будем выбирать следующий элемент множества X.
Генерация всех размещений без повторений
Алгоритмы генерации размещений без повторений достаточно сложны и здесь не рассматриваются.
Генерация всех разбиений
Алгоритмы генерации всех разбиений сложны и потребуют отдельную лекцию, поэтому здесь не рассматриваются.
Комбинаторная теория |
23 |