在Java中获得特定范围的随机数

Get random numbers in a specific range in java

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
Java: generating random number in a range

我想用

1
java.util.Random(arg);

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


1
2
Random rand = new Random(seed);
int random_integer = rand.nextInt(upperbound-lowerbound) + lowerbound;


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

1
Random r = new Random();

然后,如果您想要一个int值,您应该使用nextIntint myvalue=r.nextint(最大值);

现在,如果您希望在一个时间间隔内实现这一点,只需执行以下操作:

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

在你的情况下:

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

您应该查看文档:

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


我认为你误解了随机工作的原理。它不返回整数,而是返回一个参数为prng种子值的随机对象。

1
2
Random rnd = new Random(seed);
int myRandomValue = 200 + rnd.nextInt(300);

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

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

1
2
Random random = new Random(); // or new Random(someSeed);
int value = 200 + random.nextInt(300);