在Java中寻找随机数生成器使用任何范围

时间:2013-09-29 07:33:19

标签: java random

我需要一个非常简单的随机数生成器函数,它将输入参数作为类似的范围:

int randomNumberGenerater(int range) {
    return (int) (Math.random() * range);
}

问题是当范围等于1时,它将始终输出1而不是在0和1之间交替。如何使用适用于任何范围的通用解决方案来解决这个问题。

5 个答案:

答案 0 :(得分:3)

使用Random类,并使用nextInt(int)方法生成从0到给定整数的随机数:

public static int randomNumberGenerater(int range) {
    Random rand = new Random();
    return rand.nextInt(range);
}

答案 1 :(得分:2)

Random random = new Random();
int randomNumberGenerater(int range) {
    return random.nextInt(range);
}

答案 2 :(得分:1)

使用Random类可以指定范围。

Random rand = new Random();
rand.nextInt(range);

答案 3 :(得分:0)

您可以使用ceil()floor()函数来获得相同数量的0和1。

如果你的随机生成方法给出0.3或0.8,你的方法将总是给你1.但是如果你使用这两种方法,你将得到均匀分布的0和1。

答案 4 :(得分:0)