2011-12-19 15 views

risposta

8

Basta passare attraverso BitSet e chiamare nextBoolean() della classe Random.

4

Non esiste un tale costruttore. Quello che dovresti fare è creare un BitSet e poi in un ciclo impostare tutti i bit su valori casuali.

+0

L'impostazione di tutti i bit di un vettore illimitato di bit richiederà un po 'di tempo ... potrebbe valere la pena di richiamare esplicitamente che l'OP dovrà determinare quanti bit impostare. – yshavit

+0

Sì, presupponevo un BitSet di lunghezza fissa. – Thilo

5

Se si utilizza Java 7, è possibile inizializzare un casuale byte array con Random.nextBytes(byte[]) quindi utilizzare il metodo statico BitSet.valueOf(byte[]) per creare un BitSet dallo stesso array di byte.

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

Oppure, se si desidera che la percentuale di 0 vs. 1 bit di essere qualcosa di diverso da 50:50, il check out an old SO question of mine.

Problemi correlati