20

可能重复:
Java:在一个范围内生成随机数

我想使用生成随机数

java.util.Random(arg);

唯一的问题是,该方法只能接受一个参数,所以这个数字总是在 0 和我的参数之间。有没有办法生成(比如说)200 到 500 之间的随机数?

4

4 回答 4

46
Random rand = new Random(seed);
int random_integer = rand.nextInt(upperbound-lowerbound) + lowerbound;
于 2012-07-31T15:12:49.307 回答
6

首先,您必须创建一个 Random 对象,例如:

Random r = new Random();

然后,如果你想要一个 int 值,你应该使用nextInt int myValue = r.nextInt(max);

现在,如果你想在一段时间内这样做,只需执行以下操作:

 int myValue = r.nextInt(max-offset)+offset;

在你的情况下:

 int myValue = r.nextInt(300)+200;

您应该查看文档:

http://docs.oracle.com/javase/6/docs/api/java/util/Random.html

于 2012-07-31T15:12:56.453 回答
3

我认为您误解了 Random 的工作原理。它不返回整数,而是返回一个 Random 对象,其参数是 PRNG 的种子值

Random rnd = new Random(seed);
int myRandomValue = 200 + rnd.nextInt(300);
于 2012-07-31T15:13:59.540 回答
1

您传递给构造函数的参数是种子,而不是绑定。

要获得 200 到 500 之间的数字,请尝试以下操作:

Random random = new Random(); // or new Random(someSeed);
int value = 200 + random.nextInt(300);
于 2012-07-31T15:15:13.790 回答