Как реализовать перебор случайных подмножеств?

Подскажите, как можно выбирать случайные подмножества в итераторе, но с условием гарантии неповторяемости.
Т.е. чтобы при получении очередного подмножества не приходилось проверять факт его предыдущего использования.

Есть мысли использовать коды Грея - выбирать один из классов кода и генерировать двоичные числа в соотв с ним.

UPD:
Задача стоит иметь возможность перебрать ВСЕ подмножества данного множества (достаточно большого). При этом получать очередное подмножество в виде:
class subsetSource<T>
{
    public List<T> getNewSubset()
    {
        ...
        return ....
    }
}
  • Вопрос задан
  • 2338 просмотров
Решения вопроса 1
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
Перебирать номера подмножеств по порядку, применять к номерам биективное преобразование (например блочный шифр) чтобы из порядкового номера подмножества получить его элементы.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы