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



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

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

现在我的代码是这样的:

int randRed = rand.nextInt(255);

绿色和蓝色也是如此。我可以使用模数来重复代码,直到它恰好是15的倍数,但这将是非常低效的。

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

RIght发布后我发现了。。。

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

15等于255 17次,所以只需乘以0和17之间的随机整数,加1,再乘以15。

一般来说,

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

然后,特别是

randomBoundedMultiple(255, 15);

最新更新