用于连续分析的随机数发生器

时间:2012-12-01 07:34:32

标签: java

我可以使用

创建一个范围内的随机数
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] {这是我的要求}或(范围)输出?或者有更好的替代解决方案吗?

2 个答案:

答案 0 :(得分:3)

最简单的方法可能是:

类似的东西:

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

如果默认不适合您,您甚至可以provide a random generator进行洗牌操作。

答案 1 :(得分:0)

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