ビットセットをJAVAでランダムに初期化する

BitSetをランダムに初期化する必要があります。それを行う方法はありますか?

前もって感謝します。

6

3 答え

BitSetを実行し、RandomクラスのnextBoolean()を呼び出します。

8
追加された

If you are using Java 7, you can initialize a random byte array with Random.nextBytes(byte[]) then use the static BitSet.valueOf(byte[]) method to create a BitSet from the same byte array.

Random rnd = new Random();
// ...
byte[] randomBytes = new byte[NUM_BYTES];
rnd.nextBytes(randomBytes);
return BitSet.valueOf(randomBytes);

または、 0 1 ビットの比率を50:50以外にする場合は、私の古いSOの質問です。

5
追加された

そのようなコンストラクタはありません。あなたがしなければならないのは、BitSetを作成し、ループ内ですべてのビットをランダムな値に設定することです。

4
追加された
はい、固定長のビットセットを想定していました。
追加された 著者 Thilo,
ビットの無限ベクトルのすべてのビットを設定するには時間がかかるでしょう... OPは設定するビット数を決定する必要があることを明示的に呼び出す価値があるかもしれません。
追加された 著者 yshavit,