Exclure certaines valeurs d'un générateur aléatoire
santosV
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
je suis bloqué, je veux exclure certeines valeurs d'un generateur aléatoire.
En gros j'ai écrit un programme générant 10 chiffres aléatoires de 0 à 10, et je voudrais exclure les valeurs 3 et 4 par exemple.
j'essaye d'apprendre Python en autodidacte
je suis bloqué, je veux exclure certeines valeurs d'un generateur aléatoire.
En gros j'ai écrit un programme générant 10 chiffres aléatoires de 0 à 10, et je voudrais exclure les valeurs 3 et 4 par exemple.
j'essaye d'apprendre Python en autodidacte
3 réponses
Bonjour
Une solution serait (attention, je code en Java) :
Une solution serait (attention, je code en Java) :
List<Integer> nombresAleatoires = new LinkedList<>();
List<Integer> nombresAEliminer = new LinkedList<>();
nombresAEliminer.add(3);
nombresAEliminer.add(4);
Integer nbMax = 50;
while (nbMax > 0) {
Integer valeurRandom = Math.rand(0,50);
// Si la liste NE CONTIENT PAS la valeur (c'est le ! au début qui fait que non)
if (!nombresAEliminer.contains(valeurRandom)) {
nombresAleatoires.add(valeurRandom);
nbMax = nbMax - 1;
}
}
Bonsoir, tu peux aussi raisonner à l'inverse.
Tu crées la liste des valeurs autorisée, selon ton exemple
0, 1, 2, 5, 6, 7, 8, 9, 10 -> 9 valeurs et soit
Tu crées la liste des valeurs autorisée, selon ton exemple
0, 1, 2, 5, 6, 7, 8, 9, 10 -> 9 valeurs et soit
- générer aléatoirement des index entre 0 et 8, prendre la valeur de la liste à cet index
- mélanger la liste et prendre les n premiers de la liste (cette méthode interdit les doublons, et autorise le tirage de la collection complète: distribution d'un jeu de carte par exemple)
c'est une facon trés élegante de résoudre ce probléme
merci pour ta réponse