连续分析范围内的随机数生成器 [英] random number generator from a range for continuos analysis
问题描述
我可以使用
Random rand = new Random();
int num = rand.nextInt(10);
System.out.println("Generated Random Number between 0 to 10 is : " + num);
但是如果我需要生成的下一个随机数是减去
已经生成的一个,将上述语句保持在循环中就足够了吗?
But if i need the next random number generated to be a part of the range minus
the already generated one, will keeping the above statement in a loop will suffice?
此外,我需要停止一次该范围内的数字。
Also I need to stop once i exhaust all the number from the range.
例如,
代码在[0-10]之间给出一个随机数],
The code gives me a random number between [0-10],
1st - 4
- 范围{[0-10]}
1st - 4
- range {[0-10]}
2nd - 9
- 范围{[0-10] -4}
2nd - 9
- range {[0-10]-4}
3rd - 8
- 范围{[0-10] -4,9}
3rd - 8
- range {[0-10]-4,9}
..
..
10th - 10
- 范围{[0-10 ] - [0-9]}
10th - 10
- range {[0-10]-[0-9]}
此函数是否会从[Range] {这是我的要求}或(范围)输出?或者有更好的替代解决方案吗?
Will this function output from [Range]{this is my requirement} or (Range)? Or is there any better alternative solution?
推荐答案
最简单的方法可能是:
- 将数字(0到10)放在一个列表中
- 调用
Collections.shuffle()
在该列表上 - 循环列表
- put the numbers (0 to 10) in a list
- call
Collections.shuffle()
on that list - loop over the list
类似于:
List<Integer> numbers = Arrays.asList(0, 1, 2, 3, 4, 5, 6, 7, 8, 10);
Collections.shuffle(numbers);
System.out.println(numbers);
你甚至可以为洗牌操作提供随机生成器默认不适合你。
You can even provide a random generator for the shuffling operation if the default doesn't suit you.
这篇关于连续分析范围内的随机数生成器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!