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

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

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

UPD:
Задача стоит иметь возможность перебрать ВСЕ подмножества данного множества (достаточно большого). При этом получать очередное подмножество в виде:
class subsetSource<T>
{
    public List<T> getNewSubset()
    {
        ...
        return ....
    }
}
  • Вопрос задан
  • 2333 просмотра
Решения вопроса 1
jcmvbkbc
@jcmvbkbc
http://dilbert.com/strip/1998-08-24
Перебирать номера подмножеств по порядку, применять к номерам биективное преобразование (например блочный шифр) чтобы из порядкового номера подмножества получить его элементы.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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