¿Podría alguien decirme cómo puedo elegir varios números aleatorios diferentes de una matriz a la vez? Por ejemplo, hay una matriz int larga. Quiero elegir 7 números de él. Todos los números no deben ser iguales y ordenarlos por secuencia de aumento.Java: elija varios números aleatorios diferentes de la matriz al mismo tiempo
Random random = new Random();
int a = mixColor[random.nextInt(mixColor.length)];
int b = mixCoor[random.nextInt(mixCoor.length)];
int c = mixCoor[random.nextInt(mixCoor.length)];
int d = mixCoor[random.nextInt(mixCoor.length)];
int e = mixCoor[random.nextInt(mixCoor.length)];
while(b!=c && c!=d && b!=d) {
b = mixCoor[random.nextInt(mixCoor.length)];
c = mixCoor[random.nextInt(mixCoor.length)];
d = mixCoor[random.nextInt(mixCoor.length)];
}
mixColor[]
y mixCoor[]
son largas matrices int. Puedo hacerlo de esta manera, pero si quiero elegir más números, esto será realmente complicado. Y necesito ordenarlos también. Alguien tiene buenas ideas?
Dependiendo de qué tan grande sea su colección, puede usar el orden aleatorio y luego recoger los primeros elementos según sea necesario. Probablemente desee comparar esto: su colección puede ser lo suficientemente grande y la reproducción aleatoria puede ser lenta, lo que cancela la simplicidad que obtiene de esto. Aquí está la especificación para [shuffle] (http://docs.oracle.com/javase/1.4.2/docs/api/java/util/Collections.html#shuffle%28java.util.List%29) –
Un mejor sería utilizar un gen de número 'Random' y ver si la lista elegida ya tiene el número en el índice generado. Luego, ordena usando 'Colecciones' – Jon