连续分析范围内的随机数生成器 [英] random number generator from a range for continuos analysis

查看:126
本文介绍了连续分析范围内的随机数生成器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我可以使用

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?

推荐答案

最简单的方法可能是:

  • 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆