2017-10-06 10 views
0

約30個の要素でそれぞれ約100万セットあります。各セットについて、kが3または4または5のようなものになるような、サイズ "k"までのすべてのサブセットを生成したいと思います。私はGuavaを初めて使用し、それを試してみることにしました。私は自分のセットごとにすべてのサブセットを生成するpowerSetメソッド(https://google.github.io/guava/releases/21.0/api/docs/com/google/common/collect/Sets.html)を見つけました。グアバを使用したサイズ「k」のサブセット

私は各電源セットをループすることができ、サイズが "k"以下のサブセットのみを取ります。しかし、パワーセットのサイズは2^30であるため、これは非常に非効率的です。

私は、サイズkのすべてのサブセットのセットを生成する方法をGuavaが持っていると思っていましたが、見つけられませんでした。何か不足していますか?

+1

その後の結果で何をしたいですか?あなたの 'Set'インターフェイスの機能が必要か、' Iterable'はあなたのユースケースでOKですか? – Xaerxess

+0

Iterableは大丈夫です、ありがとう – Andrew

答えて

3

「サイズkのすべてのサブセットのセット」はSets.combinationsです。

(サイズk以下のすべてのサブセットを生成する直接的な方法はないと思いますが、指摘したように、combinationsから簡単に作成できます。すべてを1つにまとめたい場合はSet Xaerxessが尋ねるように、あなた自身でSetを構築する必要があります)。

+0

ありがとう – Andrew

関連する問題