gpt4 book ai didi

java - 随机初始化特定长度的BitSet

转载 作者:太空宇宙 更新时间:2023-11-04 10:01:35 25 4
gpt4 key购买 nike

我有两个 BitSet,必须随机初始化,长度为 20 位。

我试图通过每个 BitSet 初始化 20 位并在 for 循环中迭代 BitSet 并调用 Random 类的 nextBoolean() 来实现这一点。然而,长度并不总是 20。所以,我一直在研究它,并认为这可能是因为它没有将错误位计为长度的一部分。如果我理解正确的话,我如何强制它始终具有 20 个随机位?

public static void generate() {

BitSet set1 = new BitSet(20);
BitSet set2 = new BitSet(20);

Random r = new SecureRandom();
for (int i = 0; set1.length() < 20 && set2.length() < 20; i++) {
set1.set(i, r.nextBoolean());
set2.set(i, r.nextBoolean());
}

StringBuilder s = new StringBuilder();
for (int i = 0; i < set1.length(); i++) {
s.append(temp1.get(i) == true ? 1 : 0);
}

System.out.println(s + " " + s.length() + " " + set1.length() + " "+ set2.length());
}

提前致谢。

最佳答案

为什么不使用 Bitset.valueOf(byte[] array) 从随机字节数组初始化位集?

类似于:

public BitSet getBits(SecureRandom sr, int size) {
byte[] ar = new byte[(int) Math.ceil(size / 8F)];
sr.nextBytes(ar);
return BitSet.valueOf(ar).get(0, size);
}

关于java - 随机初始化特定长度的BitSet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53395590/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com