如何获得范围内给定数字的随机倍数

时间:2020-10-29 05:02:29

标签: java random

我正在编写一个程序,其中创建一个具有随机RGB值的JPanel,用户必须使用按钮来匹配另一个JPanel中的颜色。

我希望R,G和B的随机值是15的倍数,以便用户可以更轻松地匹配颜色。

现在我的代码如下:

int randRed = rand.nextInt(255);

,绿色和蓝色相同。我可以使用模数来重复代码,直到恰好是15的倍数为止,但这效率极低。

获得小于255的15的随机倍数的最佳方法是什么?

2 个答案:

答案 0 :(得分:3)

张贴后我发现了...

int randRed = (rand.nextInt(17)+1)*15;

15进入255的17倍,因此只需将0和17之间的随机整数乘以1,然后乘以15。

答案 1 :(得分:2)

通常

static int randomBoundedMultiple(int bound, int multiplier){
    return new Random().nextInt(bound) * multiplier % bound
}

然后特别是

randomBoundedMultiple(255, 15);