2011-12-19 43 views

Trả lời

8

Chỉ cần đi qua BitSet và gọi nextBoolean() của lớp Random.

4

Không có hàm tạo nào như vậy. Những gì bạn cần làm là tạo một BitSet và sau đó trong một vòng lặp đặt tất cả các bit thành các giá trị ngẫu nhiên.

+0

Đặt tất cả các bit của một bit không liên kết bit sẽ mất một lúc ... có thể đáng để gọi một cách rõ ràng rằng OP sẽ phải xác định số bit cần đặt. – yshavit

+0

Có, tôi đã giả sử một BitSet có độ dài cố định. – Thilo

5

Nếu bạn đang sử dụng Java 7, bạn có thể khởi tạo một ngẫu nhiên byte mảng với Random.nextBytes(byte[]) sau đó sử dụng phương pháp BitSet.valueOf(byte[]) tĩnh để tạo ra một BitSet từ cùng một mảng byte.

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

Hoặc nếu bạn muốn tỷ lệ 0 vs 1 bit để có một cái gì đó khác hơn 50:50, kiểm tra an old SO question of mine.