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; } }
Bonjour,
Suggestion:
Tu crées une liste des valeurs non souhaitées.
Tu génères une valeur aléatoire et tu la cherches dans ta liste des valeurs non souhaitées.
Si tu la trouves, tu recommences ta génération de valeurs aléatoires
Ritchi
Suggestion:
Tu crées une liste des valeurs non souhaitées.
Tu génères une valeur aléatoire et tu la cherches dans ta liste des valeurs non souhaitées.
Si tu la trouves, tu recommences ta génération de valeurs aléatoires
Ritchi
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