2017-10-06 2 views
0

약 30 개의 요소로 각각 약 1 백만 세트가 있습니다. 각 집합에 대해 k가 3 또는 4 또는 5와 같은 크기가 될 때까지 "k"크기까지 모든 하위 집합을 생성하려고합니다. 구아바에 익숙하지 않으며이를 시도하기로 결정했습니다. 내 세트의 모든 하위 집합을 생성하는 powerSet 메서드 (https://google.github.io/guava/releases/21.0/api/docs/com/google/common/collect/Sets.html)를 발견했습니다.크기가 "k"이고 구아바를 사용하는 서브 세트

각 전원 세트를 반복 할 수 있으며 크기가 "k"보다 작거나 같은 하위 세트 만 가져올 수 있습니다. 그러나 파워 세트의 크기는 2^30이므로 매우 비효율적입니다.

구아바에는 크기 k의 모든 하위 집합을 생성 할 수있는 방법이 있다고 생각했지만 찾을 수 없습니다. 내가 놓친 게 있니?

+1

결과는 나중에 무엇으로 하시겠습니까? 당신은'Set' 인터페이스 기능을 필요로합니까, 아니면 당신의 유스 케이스에 대해'Iterable' OK입니까? – Xaerxess

+0

반복 가능합니다. 감사합니다. – Andrew

답변

3

"크기 k의 모든 하위 집합 집합"은 Sets.combinations입니다.

(우리는 크기가 k 이하인 모든 하위 집합을 생성 할 수있는 직접적인 방법이 있다고 생각하지 않지만, 여러분이 지적한대로 combinations에서 빌드하는 것이 쉽습니다. 단 하나의 모든 것을 원한다면 Set Xaerxess가 묻는대로 Set을 직접 만들어야합니다.)

+0

감사합니다. – Andrew