Подскажите, как можно выбирать случайные подмножества в итераторе, но с условием гарантии неповторяемости.
Т.е. чтобы при получении очередного подмножества не приходилось проверять факт его предыдущего использования.
Есть мысли использовать коды Грея - выбирать один из классов кода и генерировать двоичные числа в соотв с ним.
UPD:
Задача стоит иметь возможность перебрать ВСЕ подмножества данного множества (достаточно большого). При этом получать очередное подмножество в виде:
class subsetSource<T>
{
public List<T> getNewSubset()
{
...
return ....
}
}