我需要1,2,3和4中的两个随机数,但它们不能相同,我需要两个不同的变量。
类似rnd1 = 1;
和rnd2 = 3;
之类的内容。
我尝试生成经典样式:int rnd = new Random().nextInt(3) + 1;
。而对于另一个同样的方式,但如何确保它们不匹配?怎么做?
答案 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;