Подмножества

Получение полного набора некоторых комбинаторных объектов является важной задачей дискретных вычислений. Например, решение многих задач дискретной оптимизации почти всегда связано с перебором объектов некоторого полного набора. Число r-элементных подмножеств из n-элементного множества равно числу сочетаний:

.

Количество всех подмножеств n-элементного множества равно:

.

Алгоритм получения полного набора подмножеств представим в виде программы на языке С++.

Используется алгоритм перебора бинарных кодов, представляющих искомые подмножества. Бинарный код подмножества представлен массивом типа unsigned char, при этом в 1 байт – элемент массива записывается 1 бит бинарного кода. Однако эту же идею можно реализовать и для носителя подмножества типа битового вектора.

Множество представлено битовым вектором d:


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: