его непустые подмножества.
Для построения всех подмножеств можно использовать функцию setnk(n,k):
For (k=1;k>=n;k++) setnk(n,k);
т.е. генерируем по одному, по два и т.д. до n элементов.
Битовый алгоритм. Поставим в соответствие каждому элементу множества 0 или 1. То есть каждому подмножеству соответствует n-значное число в двоичной системе счисления. Отсюда следует, что полный перебор всех подмножеств данного множества соответствует перебору всех чисел в двоичной системе счисления
от 1 до 2n – 1:
Легко подсчитать и количество различных подмножеств данного множества, оно равно 2n – 1 (или 2n, с учетом пустого множества).
Очевидно, что за 1 секунду мы можем сгенерировать множество из n ≤ 20 элементов.