2011-12-19 9 views

Respuesta

8

Simplemente vaya a través de BitSet y llame a nextBoolean() de la clase Aleatoria.

4

No existe tal constructor. Lo que tendría que hacer es crear un BitSet y luego en un bucle establecer todos los bits en valores aleatorios.

+0

Establecer todos los bits de un vector ilimitado de bits va a llevar un tiempo ... podría valer la pena declarar explícitamente que el OP tendrá que determinar cuántos bits establecer. – yshavit

+0

Sí, estaba asumiendo un BitSet de longitud fija. – Thilo

5

Si está utilizando Java 7, se puede inicializar un byte aleatorio matriz con Random.nextBytes(byte[]) a continuación, utilizar el método estático BitSet.valueOf(byte[]) para crear un BitSet de la misma matriz de bytes.

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

O si desea que la proporción de 0 vs 1 bits a ser algo distinto de 50:50, echa un vistazo a an old SO question of mine.