Get random numbers in a specific range in java
Possible Duplicate:
Java: generating random number in a range
我想用
唯一的问题是,这个方法只能接受一个参数,所以这个数字总是在0和我的参数之间。有没有一种方法可以生成200到500之间的随机数?
- 使用数学,然后添加?
- 评论相当模糊。试着举个例子
- 有多不清楚?你有一个上限。你希望它被一个数字所抵消。加上那个数字。使用+。比如说,x + 200。
- 你有没有注意到,当你创建问题时,会向你显示可能的类似问题列表,例如这个问题,这样你就能更快地找到答案?
1 2
| Random rand = new Random(seed );
int random_integer = rand. nextInt(upperbound -lowerbound ) + lowerbound ; |
- 非常感谢!它工作得很好,你的回答对我来说是最有建设性和最有用的。
- @当然,它是错误的;没有返回随机数的Random构造函数。除举一个例子外,其他三个答案都正确地使用了课堂。
- 除了是错的,没有什么错。
- 我只是用了nextint(),它仍然是最有建设性的答案。
首先,您必须创建一个随机对象,例如:
然后,如果您想要一个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); |