我在生成这段代码时遇到了麻烦,我确信我只是在编码器的块或其他东西中,因为它看起来好像很容易,但却无法在我的生活中得到它。
我有一个程序需要在一定范围内生成的随机数来表示金钱。规定是钱需要在2到200之间,只代表美元,只需2美元,4美元,6美元......等等。我已经在网上做了大量的搜索,它产生了丰富的代码来表示java中某个范围内的随机数,但不是仅仅是偶数的部分。
有什么想法吗?
答案 0 :(得分:1)
如果您想要聪明,可以确保未设置该数字的最低有效位:
int num = (new Random().nextInt(199) & ~1) + 2;
这将确保数字始终均匀。
感谢Eyal Shneider和Omaha
Marcelo 对OP的评论是正确答案。
获取1-100之间的数字,以及2之前的数字:
int num = (new Random().nextInt(100) + 1) * 2;
答案 1 :(得分:0)
int rand = new Random.nextInt(200);
int result = 2;
while(result < rand) {
result += 2;
}
return result;
(我会让它递归,但我必须去见我妻子共进晚餐。)