2011-12-19 47 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