生成特定范围内的随机数

时间:2014-05-04 22:32:15

标签: java random

我已经高低搜索到了这个问题的答案,并且无法看到我做错了什么,我已经尝试了几种不同的编码方式,但它总是如此超出我想要的范围。 (包括90 - 180)。

任何人都可以对下面的代码有所了解吗?

Random rnd = new Random();
int time = rnd.nextInt(91) + 90;

感谢您提供的任何支持......


    /**
 * Randomly generates a number between 90-180 inclusive and sets the random number as an     argument to a message-send for each of the 
 * Runner objects in runnersList.
 */
public void runMarathon()
{
   for (Runner r : runnersList)
   {
      Random rnd = new Random();
      int time = rnd.nextInt(91) + 90;
      r.setTime(time);
   }
}

2 个答案:

答案 0 :(得分:1)

此功能将帮助您完成所需的操作


private int randInt(int min, int max) {

        return new Random().nextInt((max - min) + 1) + min;
}

只需将最小值和最大值作为参数给予函数,您将获得指定范围之间的随机值;)

答案 1 :(得分:-3)

软件开发的一个关键原则是重用。所以要做到这一点,你可以使用 " http://commons.apache.org/proper/commons-lang/javadocs/api-3.3/org/apache/commons/lang3/RandomUtils.html#nextInt(int,int)"而不是重新发明轮子。