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

Java 如何在一定范围内获得给定数字的随机倍数,java,random,Java,Random,我正在制作一个程序,其中使用随机RGB值创建一个JPanel,用户必须使用按钮匹配另一个JPanel中的颜色 不过,我希望随机的R、G和B值是15的倍数,这样用户可以更容易地匹配颜色 现在,我的代码如下所示: int randRed = rand.nextInt(255); 绿色和蓝色也一样。我可以使用一个模来重复代码,直到它恰好是15的倍数,但这将是非常低效的 实现15的随机倍数小于255的最佳方法是什么?发布后,我马上想到了 int randRed = (rand.nextInt(17)+

我正在制作一个程序,其中使用随机RGB值创建一个
JPanel
,用户必须使用按钮匹配另一个
JPanel
中的颜色

不过,我希望随机的R、G和B值是15的倍数,这样用户可以更容易地匹配颜色

现在,我的代码如下所示:

int randRed = rand.nextInt(255);
绿色和蓝色也一样。我可以使用一个模来重复代码,直到它恰好是15的倍数,但这将是非常低效的


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

发布后,我马上想到了

int randRed = (rand.nextInt(17)+1)*15;
15等于25517次,所以只需将0到17之间的随机整数乘以1,再乘以15。

一般来说

static int randomBoundedMultiple(int bound, int multiplier){
    return new Random().nextInt(bound) * multiplier % bound
}
然后特别是,

randomBoundedMultiple(255,15)

它应该是
(兰德公司nextInt(17)+1)*15