我已经生成了一个从1-100的随机数,但不会出现重复的数字(例如,如果10来一,那么它不会再来了。)(这个不行)
final Random random = new Random();
ArrayList<Integer> arrayList = new ArrayList<Integer>();
while (arrayList.size() < 6) { // how many numbers u need - it will 6
int a = random.nextInt(91)+1; // this will give numbers between 1 and 90.
if (!arrayList.contains(a)) {
arrayList.add(a);
}
}
我如何使用生成的出现在屏幕底部,使用户必须知道什么数字是1-100所有的数字是做了,然后没有数字生成
有谁能帮帮我吗?
试试这个。
Integer[] arr = new Integer[100];
for (int i = 0; i < arr.length; i++) {
arr[i] = i;
}
Collections.shuffle(Arrays.asList(arr));
试试这个可能对你有帮助
Random rng = new Random(); // Ideally just create one instance globally
List<Integer> generated = new ArrayList<Integer>();
for (int i = 0; i < numbersNeeded; i++)
{
while(true)
{
Integer next = rng.nextInt(max) + 1;
if (!generated.contains(next))
{
// Done for this iteration
generated.add(next);
break;
}
}
}
问题内容: 作为我项目的一部分,我需要通过提供一组数字来创建不重复的2或3位数字随机数。我不想为此实现一个列表或数组,因为我应该为每个函数调用获取1个随机数。 我尝试使用Java的SecureRandom类来做到这一点。我也从某些站点获得了帮助,但是我陷入了困境,我们可以改组VALUES并完成它吗?但是我不知道该怎么办。谁能帮我? 问题答案: Fisher- yates随机播放算法 是必经之路。其
问题内容: java.util.Random的实例是线程安全的。但是,跨线程并发使用同一java.util.Random实例可能会引起争用并因此导致性能下降。考虑在多线程设计中改用ThreadLocalRandom。 什么样的争执因而表现不佳?有人可以在这里给我解释吗?我不知道在Random和ThreadLocalRandom中使用什么算法使它们与众不同。 问题答案: 这可能会有所帮助: http
坦率地说,我一直在思考如何实现一些超出我数学能力的东西。因此,请随意尝试并为我指出正确的方向,而不是完整的代码解决方案,我将非常感谢您的帮助。 所以,假设我对文本进行了分析,并生成了不同两个字符组合的频率表。我已将这些存储在26x26阵列中。如。 所以我想随机选择这两个字符组合,但我想根据频率来“权衡”我的选择。也就是说,上面的AB应该是AA的“可能性”的15倍。而且,很明显,选择永远不应该返回类
问题内容: 我想创建一组随机数,在Java中没有重复项。 例如,我有一个数组来存储10,000个从0到9999的随机整数。 这是我到目前为止的内容: 但是上面的代码创建重复项。如何确保随机数不重复? 问题答案: 例如:
如何在1到9之间生成9个随机数,而不重复,一个接一个。它类似于:假设生成的第一个随机数是4,那么下一个随机数必须在[1,9]{4}中。我的第一种方法是将每个随机生成的数字添加到一个集合中,从而避免重复。但在更糟糕的情况下,比如我们已经生成了6个数字,我们必须再生成3个数字,这个过程会有点慢。当范围从[1,9]更改为[1,1000]时,这种方法听起来不正确。有人能提出一个替代方法吗。
在本例中,最大值仅为5,因此我可以逐个检查副本,但如何以更简单的方式执行此操作?例如,如果最大值为20,该怎么办?谢谢