C'est le le plus simple méthode permettant de générer des valeurs aléatoires uniques dans une plage ou à partir d'un tableau .
Dans cet exemple, je vais utiliser un tableau prédéfini, mais vous pouvez également adapter cette méthode pour générer des nombres aléatoires. Tout d'abord, nous allons créer un tableau type pour récupérer nos données.
- Générer un nombre aléatoire et l'ajouter au nouveau tableau.
- Générer un autre nombre aléatoire et vérifier s'il est déjà stocké dans le nouveau tableau.
- Si ce n'est pas le cas, ajoutez-le et continuez
-
sinon réitérer l'étape.
ArrayList<Integer> sampleList = new ArrayList<>();
sampleList.add(1);
sampleList.add(2);
sampleList.add(3);
sampleList.add(4);
sampleList.add(5);
sampleList.add(6);
sampleList.add(7);
sampleList.add(8);
Maintenant, de la sampleList
nous produirons cinq nombres aléatoires qui sont uniques.
int n;
randomList = new ArrayList<>();
for(int i=0;i<5;i++){
Random random = new Random();
n=random.nextInt(8); //Generate a random index between 0-7
if(!randomList.contains(sampleList.get(n)))
randomList.add(sampleList.get(n));
else
i--; //reiterating the step
}
C'est conceptuellement très simple. Si la valeur aléatoire générée existe déjà, nous répéterons l'étape. Nous continuerons ainsi jusqu'à ce que toutes les valeurs générées soient uniques.
Si vous avez trouvé cette réponse utile, vous pouvez voter pour elle car elle est beaucoup plus simple dans son concept que les autres réponses. .
5 votes
Vous pourriez créer un permutation aléatoire de la gamme
1..100
(il existe des algorithmes célèbres pour cela), mais arrêtez-vous après avoir déterminé le premiern
éléments.0 votes
Duplicata possible de Génération de nombres aléatoires dans une plage avec Java
0 votes
stackoverflow.com/questions/28990820/
0 votes
Cela pourrait être utile Générateur d'identité aléatoire unique