生成给定范围内的随机整数,甚至是唯一的

时间:2013-09-12 20:13:41

标签: java random integer

我在生成这段代码时遇到了麻烦,我确信我只是在编码器的块或其他东西中,因为它看起来好像很容易,但却无法在我的生活中得到它。

我有一个程序需要在一定范围内生成的随机数来表示金钱。规定是钱需要在2到200之间,只代表美元,只需2美元,4美元,6美元......等等。我已经在网上做了大量的搜索,它产生了丰富的代码来表示java中某个范围内的随机数,但不是仅仅是偶数的部分。

有什么想法吗?

2 个答案:

答案 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;

(我会让它递归,但我必须去见我妻子共进晚餐。)