2011-12-19 57 views

回答

8

只需通過BitSet並調用Random類的nextBoolean()。

4

沒有這樣的構造函數。你需要做的是創建一個BitSet,然後在一個循環中將所有位設置爲隨機值。

+0

設置無限位向量的所有位需要一段時間......可能值得明確指出OP將必須確定要設置的位數。 – yshavit 2011-12-19 06:59:33

+0

是的,我假設一個固定長度的BitSet。 – Thilo 2011-12-19 07:01:43

5

如果您使用的是Java 7,你可以初始化一個隨機字節數組Random.nextBytes(byte[])然後用靜態方法BitSet.valueOf(byte[])從相同的字節數組創建BitSet

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

或者,如果你想要的01位的比例是其他東西比50:50,退房an old SO question of mine