2010-10-11 64 views
3
之间的随机值

可能重复:
Java: generating random number in a range如何生成两个数字

如何生成两个数字之间的随机值。 Random.nextInt()给你介于0和传递的值之间。如何在minValue和maxValue之间生成一个值

+1

的答案太简单了! – vulkanino 2010-10-11 12:20:27

+6

人们发现谷歌或在这里问问题比THINK更容易。 – vulkanino 2010-10-11 12:25:00

+2

考虑到我们有两个删除的,一个不正确的和一个严格编辑的答案,它可能比它看起来更难。 – Thilo 2010-10-11 12:27:33

回答

7

写的方法,如:

public static int getRandom(int from, int to) { 
    if (from < to) 
     return from + new Random().nextInt(Math.abs(to - from)); 
    return from - new Random().nextInt(Math.abs(to - from)); 
} 

这也考虑了事实,即nextInt()参数必须是积极的,而且从可以更大然后

9

random.nextInt(max - min + 1) + min将会执行此操作。我想,你希望min <= number <= max

1

实施例:生成从1至6的数
由于nextInt(6)0-5返回一个数,有必要加1来缩放数为范围1-6

 
static Random randGen = new Random(); 
int spots; 
. . . 
spots = randGen.nextInt(6) + 1;