我需要生成一些随机的 boolean
值。
但是,我需要确保在 100 次调用中恰好有 10 次 true
。此外,我需要 true
值几乎均匀分布(例如,第二个 true
将出现在 9 个 false
之后,第三个将在 7 个 false
等之后出现)。我尝试使用 java.util.Random
的 nextBoolean()
方法来实现它,但似乎 true
值在开始时变得过于拥挤.谁能帮忙?
最佳答案
这是一些实现 stratified sampling 的代码技术:
boolean[] get10in100() {
boolean[] result = new boolean[100];
Random rand = new Random();
for (int i = 0; i < 10; ++i) {
result[10 * i + rand.nextInt(10)] = true;
}
return result;
}
关于java - 如何使用此分布在 Java 中生成随机 boolean 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15318929/