如何从4中生成两个随机数?

时间:2013-03-16 19:56:48

标签: java android

我需要1,2,3和4中的两个随机数,但它们不能相同,我需要两个不同的变量。

类似rnd1 = 1;rnd2 = 3;之类的内容。

我尝试生成经典样式:int rnd = new Random().nextInt(3) + 1;。而对于另一个同样的方式,但如何确保它们不匹配?怎么做?

5 个答案:

答案 0 :(得分:8)

您可以简单地使用允许的数字填充列表shuffle it,而不是自己实现随机性和单一性,并获取前两个条目:

List<Integer> list = Arrays.asList(1, 2, 3, 4);
Collections.shuffle(list);
rnd1 = list.get(0);
rnd2 = list.get(1);

答案 1 :(得分:6)

Random random = new Random();
int rnd1 = random.nextInt(3) + 1;
int rnd2 = rnd1;
while(rnd2 == rnd1) {
    rnd2 = random.nextInt(3) + 1;
}

答案 2 :(得分:3)

嗯,最简单的方法可能是:

Random random = new Random();
int rnd1 = random.nextInt(3) + 1;
int rnd2;
do {
    rnd2 = random.nextInt(3) + 1;
} while (rnd1 == rnd2);

答案 3 :(得分:1)

将第一个值分配给第二个值,然后使用while循环,直到两个值不相等。

int rnd = new Random().nextInt(3) + 1;
int rnd2 = rnd;

while(rnd2 == rnd){
  rnd2 = new Random().nextInt(3) + 1;
}

答案 4 :(得分:-1)

    int one, two;
    Random r = new Random();
    one = r.nextInt(3) + 1;
        two = r.nextInt(3) + 1;
    while (one == two){
            two = r.nextInt(3) + 1;