1、2、3、および 4 のうち 2 つの乱数が必要ですが、同じにすることはできず、2 つの異なる変数でそれらが必要です。
rnd1 = 1;
とのようなものrnd2 = 3;
です。
私はそれらを古典的なスタイルで生成しようとしました: int rnd = new Random().nextInt(3) + 1;
. もう一方も同じ方法ですが、一致しないようにするにはどうすればよいですか? どうやってするか?
ランダム性と単一性を自分で実装するのではなく、許可された番号をリストに入力し、シャッフルして最初の2つのエントリを取得するだけです。
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);
最初の値を2番目の値に割り当て、2つの値が等しくなくなるまで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;