Tôi có BitSet phải được khởi tạo ngẫu nhiên. Có cách nào để làm điều đó không?Khởi tạo ngẫu nhiên BitSet trong JAVA
Xin cảm ơn trước.
Tôi có BitSet phải được khởi tạo ngẫu nhiên. Có cách nào để làm điều đó không?Khởi tạo ngẫu nhiên BitSet trong JAVA
Xin cảm ơn trước.
Chỉ cần đi qua BitSet và gọi nextBoolean() của lớp Random.
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.
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.
Đặ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
Có, tôi đã giả sử một BitSet có độ dài cố định. – Thilo