/ / Générer un tableau de nombres aléatoires à partir d’un plus grand tableau? - java, aléatoire

Générer un tableau de nombres aléatoires à partir d'un tableau plus grand? - java, aléatoire

J'ai besoin de générer un tableau aléatoire à partir d'un plus grand tableau d'int sans répétition et dans une plage de nombres.

Par exemple J'ai un tableau un [] avec 1-200 int, ce dont j'ai besoin est un tableau de nombres aléatoires de tous les 200 int mais de taille 15. Comment puis-je implémenter cela?

Réponses:

2 pour la réponse № 1
Random rnd = new Random();

int[] a = new int[200];
for (int i = 0; i < a.length; i++)
a[i] = i;

int[] r = new int[15];
for (int i = 0; i < r.length; i++) {
int j = rnd.nextInt(a.length - i);
r[i] = a[j];
a[j] = a[a.length - i - 1];
}

Ça devrait le faire. Au hasard prendre quelque chose d'un. Une fois que vous l'avez saisi, remplacez-le par la "dernière" valeur de a. La "dernière" valeur est facilement dérivée de a.length et i.


3 pour la réponse № 2

Mélange Fisher-Yates. En particulier, mélangez les 15 premiers éléments et sélectionnez-les.