在Java中查找任意范围的随机数生成器

在Java中查找任意范围的随机数生成器,java,random,Java,Random,我需要一个非常简单的随机数生成器函数,它将输入参数作为一个范围,类似于: int randomNumberGenerater(int range) { return (int) (Math.random() * range); } 问题是当范围等于1时,它总是输出1,而不是在0和1之间交替。如果可能的话,我如何使用适用于任何范围的通用解决方案来解决这个问题。您可以使用ceil()或floor()函数来获得相同数量的0和1 Random random = new Random(); in

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

int randomNumberGenerater(int range) {
    return (int) (Math.random() * range);
}
问题是当范围等于1时,它总是输出1,而不是在0和1之间交替。如果可能的话,我如何使用适用于任何范围的通用解决方案来解决这个问题。

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

Random random = new Random();
int randomNumberGenerater(int range) {
    return random.nextInt(range);
}
在这种情况下,如果您的随机生成方法给出0.3或0.8,您的方法将始终给出1。但是如果您使用上述两种方法,您将得到均匀分布的0和1。

使用类,它是从
0
生成给定整数的随机数的方法:

Random random = new Random();
int randomNumberGenerater(int range) {
    return random.nextInt(range);
}
public static int randomNumberGenerater(int range) {
    Random rand = new Random();
    return rand.nextInt(range);
}
使用该类可以指定范围

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

您可以始终使用ApacheCommonsLang的
RandomUtils

这篇文章提供了数百个答案,甚至没有作者认可的答案,这是否意味着我们需要通读这些建议以找到我们需要的答案?????这是一件非常愚蠢的事情,如果你需要再花半个小时来找出答案,你不知道谁会来这里