我需要 1、2、3 和 4 中的两个随机数,但它们不能相同,我需要它们在两个不同的变量中。
所以,像rnd1 = 1;
and之类的东西rnd2 = 3;
。
我试图生成它们的经典风格:int rnd = new Random().nextInt(3) + 1;
. 和另一个相同的方式,但如何确保它们不匹配?怎么做?
与其自己实现随机性和唯一性,不如简单地用允许的数字填充一个列表,将其打乱并取前两个条目:
List<Integer> list = Arrays.asList(1, 2, 3, 4);
Collections.shuffle(list);
rnd1 = list.get(0);
rnd2 = list.get(1);
Random random = new Random();
int rnd1 = random.nextInt(3) + 1;
int rnd2 = rnd1;
while(rnd2 == rnd1) {
rnd2 = random.nextInt(3) + 1;
}
好吧,最简单的方法可能是:
Random random = new Random();
int rnd1 = random.nextInt(3) + 1;
int rnd2;
do {
rnd2 = random.nextInt(3) + 1;
} while (rnd1 == rnd2);
将第一个值分配给第二个值,然后使用 while 循环,直到两个值不相等。
int rnd = new Random().nextInt(3) + 1;
int rnd2 = rnd;
while(rnd2 == rnd){
rnd2 = new Random().nextInt(3) + 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;