Java:如何生成一个大于x的随机数,没有最大值?

Alb*_*Ram 0 java random math

我只想生成一个大于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.
Run Code Online (Sandbox Code Playgroud)

我如何获得finalNumber?

感谢您花时间发布答案,我真的很感激.

Jac*_*ack 5

由于信息存储在有限字节中,因此无论如何都不能生成"无最大值"的数字.

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

例如:

final int MINIMUM = ...
int v = random.nextInt(Integer.MAX_VALUE - MINIMUM) + MINIMUM;
Run Code Online (Sandbox Code Playgroud)

请注意,这是排他性的,因为nextInt(int)合同规定排除上限.这需要MINIMUM积极的.

  • 也许值得指出这是有效的,因为MINIMUM是积极的 - 否则你冒着溢出的风险. (4认同)