java中的范围和乘数的随机数

时间:2015-02-09 09:33:16

标签: java random

我试图在一个范围内生成一个特定倍数的随机数。我的例子将在60 - 500的范围内,并且只有5的倍数,例如60,65,70 - > 500

我试图使用random.nextInt(),但我可以让范围工作,或者乘数,但不能同时使用。

非常感谢任何帮助!

4 个答案:

答案 0 :(得分:3)

我会向后工作 - 生成一个随机数,然后乘以你想要的倍数:

int multiple = 5;
int rangeStart = 60;
int rangeEnd = 500;

int calcRangeStart = rangeStart / multiple;
int calcRangeEnd = rangeEnd / multiple;

int random = new Random().nextInt(calcRangeStart, calcRangeEnd) * multiple;

答案 1 :(得分:1)

首先确定随机数的可能值的数量,即

((500-60)/5 + 1) or
((505-60)/5)

使用整数除法。使用此值作为Random.nextInt的参数将为您提供从0开始的值。因此,您只需要乘以5并添加60即可获得所需范围内的值

Random random = new Random();
(random.nextInt((505-60)/5) * 5 + 60)

答案 2 :(得分:1)

您可以将from-to和multiply数字定义为int,然后生成如下:

int from = 60, to = 500, multi = 5;
Random rand = new Random();
int n = multi*(Math.round(rand.nextInt((to+multi-from))+from)/multi);

此代码将仅以5的倍数生成60到500之间的数字。

答案 3 :(得分:0)

int seed = 5;
Random random = new Random();
int inf = 12;
int sup = 100;
int number = random.nextInt((sup-inf)+1) + inf;
number *= seed;