我正在制作一个程序,其中使用随机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);