1

我可以使用从一个范围内创建随机数

Random rand = new Random();
int num = rand.nextInt(10);
System.out.println("Generated Random Number between 0 to 10 is : " + num);

但是,如果我需要生成的下一个随机数成为已经生成的范围minus的一部分,那么将上述语句保持在一个循环中就足够了吗?

此外,一旦我用完该范围内的所有数字,我就需要停下来。

例如,

该代码给了我一个 [0-10] 之间的随机数,

1st - 4- 范围 {[0-10]}

2nd - 9- 范围 {[0-10]-4}

3rd - 8- 范围 {[0-10]-4,9}

..

..

10th - 10- 范围 {[0-10]-[0-9]}

这个函数会从 [Range]{this is my requirements} 或 (Range) 输出吗?或者有没有更好的替代解决方案?

4

2 回答 2

3

最简单的方法可能是:

就像是:

List<Integer> numbers = Arrays.asList(0, 1, 2, 3, 4, 5, 6, 7, 8, 10);
Collections.shuffle(numbers);
System.out.println(numbers);

如果默认设置不适合您,您甚至可以为洗牌操作提供随机生成器。

于 2012-12-01T07:36:30.863 回答
0

我不认为这是可能的。尝试记住您已经在列表中生成的数字并使用它来生成更多随机数,直到找到不在列表中的数字。

于 2012-12-01T07:41:05.260 回答