Java 连续分析范围内的随机数生成器

Java 连续分析范围内的随机数生成器,java,Java,我可以使用 Random rand = new Random(); int num = rand.nextInt(10); System.out.println("Generated Random Number between 0 to 10 is : " + num); 但是,如果我需要生成的下一个随机数是已经生成的范围的一部分,那么将上述语句保持在循环中就足够了吗 我还需要停止一旦我用尽所有的数字范围 例如 代码给了我一个介于[0-10]之间的随机数 1st-4-范围{[0-10]} 2n

我可以使用

Random rand = new Random();
int num = rand.nextInt(10);
System.out.println("Generated Random Number between 0 to 10 is : " + num);
但是,如果我需要生成的下一个随机数是已经生成的范围的一部分,那么将上述语句保持在循环中就足够了吗

我还需要停止一旦我用尽所有的数字范围

例如

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

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

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

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

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


此函数将从[Range]{这是我的需求}或(Range)输出吗?或者有更好的替代方案吗?

最简单的方法可能是:

  • 将数字(0到10)放入列表中
  • 召唤
  • 循环浏览列表
比如:

List<Integer> numbers = Arrays.asList(0, 1, 2, 3, 4, 5, 6, 7, 8, 10);
Collections.shuffle(numbers);
System.out.println(numbers);
List number=Arrays.asList(0,1,2,3,4,5,6,7,8,10);
收藏。洗牌(数字);
系统输出打印项次(数字);

如果默认设置不适合您,您甚至可以使用随机操作。

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