我只想生成一个大于x的随机数,没有最大值,然后再进行操作。我一直在寻找问题的答案,但没有一个与我的问题相符:它们是指具有最小值和最大值的限制。我想要一个简单的代码,就像:

Random number = new Random();
int x = 0; //the minimum value
int finalNumber;//any positive random number, in this case; if, for example, x were 2, some number bigger than 2.


我如何获得finalNumber?

感谢您抽出宝贵时间发布答案,我非常感谢。

最佳答案

由于信息存储在有限的字节中,因此无论如何都无法生成“无最大值”的数字。

因此,假设您的限制为Integer.MAX_VALUE,则可以在[0, Integer.MAX_VALUE - minimum]中生成一个数字,然后将最小值添加到结果中。

例如:

final int MINIMUM = ...
int v = random.nextInt(Integer.MAX_VALUE - MINIMUM) + MINIMUM;


请注意,这是排他性的,因为nextInt(int)合同指定排除上限。并且这要求MINIMUM是肯定的。

09-13 03:55