Я хотел бы создать разделы для набора определенным образом: мне нужно отфильтровать все разделы, которые не имеют размер N, в процессе создания этих разделов. Общее решение: « Генерация всех« уникальных »подмножеств набора (не powerset) ».
Для набора S
со следующими подмножествами:
[a,b,c]
[a,b]
[c]
[d,e,f]
[d,f]
[e]
и следующие «уникальные» элементы:
a, b, c, d, e, f
результат выполнения функции / метода с аргументом N = 2
должен быть:
[[a,b,c], [d,e,f]]
Хотя следующие разделы должны быть отфильтрованы функцией / методом:
[[a,b,c], [d,f], [e]]
[[a,b], [c], [d,e,f]]
[[a,b], [c], [d,f], [e]]
Базовая структура данных не важна и может быть массивами, наборами или чем-то еще.
Причина: мне нужно отфильтровать некоторые разделы до того, как у меня будет полный набор всех разделов, потому что функция / метод, который генерирует все разделы, требует больших вычислительных ресурсов.
Согласно « Генерация разделов набора », число возможных разделов может быть огромным: 44152005855084346 для 23 элементов. Мои данные содержат 50-300 элементов в начальном наборе, поэтому мне определенно необходимо отфильтровать разделы, размер которых не равен N, прежде чем я сохраню их в любом месте.