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

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

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

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

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

Войти через центр авторизации
Похожие вопросы