我正在编写一个程序,其中创建一个具有随机RGB值的JPanel
,用户必须使用按钮来匹配另一个JPanel
中的颜色。
我希望R,G和B的随机值是15的倍数,以便用户可以更轻松地匹配颜色。
现在我的代码如下:
int randRed = rand.nextInt(255);
,绿色和蓝色相同。我可以使用模数来重复代码,直到恰好是15的倍数为止,但这效率极低。
获得小于255的15的随机倍数的最佳方法是什么?
答案 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);