在java中生成带约束的随机数

时间:2014-09-16 18:09:26

标签: java performance random

我需要使用Java生成随机整数,但在单边有界特定范围内随机。例如,15+的范围意味着唯一的约束是整数可以采用的最低值是15。

2 个答案:

答案 0 :(得分:3)

Random rand = new Random();
int min=15;
int randomNum = rand.nextInt((2147483647 - min) + 1)+ min;

答案 1 :(得分:1)

您可以像这样创建一个简单的randomInRange函数:

您只想创建一次Random对象,因此每次调用randomInRange()函数时都不需要重新播种。

Random rand;

// ...

// where you initialize stuff (for example the class constructor)

rand = new Random();

// ...

int randomInRange(int min, int max) {
    return rand.nextInt((max - min) + 1) + min;
}

如果您只想拥有最小值,可以创建另一种方法,如:

int randomFrom(int min) {
    return randomInRange(min, Integer.MAX_VALUE);
}

我建议您创建一个单独的Utilities类,其中包含static这些方法,您可以通过Utilities.randomInRange()来调用它们 如果这些是你需要的唯一实用方法,你当然可以在课堂上static制作它们