我需要一个非常简单的随机数生成器函数,它将输入参数作为类似的范围:
int randomNumberGenerater(int range) {
return (int) (Math.random() * range);
}
问题是当范围等于1时,它将始终输出1而不是在0和1之间交替。如何使用适用于任何范围的通用解决方案来解决这个问题。
答案 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)
你总是可以使用apache-commons-lang的RandomUtils
:
http://commons.apache.org/proper/commons-lang/javadocs/api-2.6/org/apache/commons/lang/math/RandomUtils.html#nextInt(int)