Java 如何在一定范围内获得给定数字的随机倍数
我正在制作一个程序,其中使用随机RGB值创建一个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)+
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