A voir également:
- Vérifier la présence d'un int dans un string
- Vérifier la présence d'un int dans un string ✓ - Forum - Java
- Vérifier la présence d'une valeur dans une colonne excel ✓ - Forum - Excel
- Comment vérifier la présence d'un SSD ✓ - Forum - Disque dur / SSD / Clé USB
- [ACCESS-VBA]-Vérifier la présence d'une table ✓ - Forum - VB / VBA
- Vérifier la présence ou l'absence de la ligne suivante ✓ - Forum - Shell
3 réponses
KX
- Messages postés
- 16307
- Date d'inscription
- samedi 31 mai 2008
- Statut
- Modérateur
- Dernière intervention
- 15 avril 2021
Bonjour,
En complément de la réponse e Whismeril je rajouterai que manipuler un String n'est pas viable. Les nombres de 1 à 5 c'est un cas très particulier mais si on reprends le problème pour aller de 1 à 20 par exemple ça ne fonctionne plus avec un String car il y a plusieurs chiffres à prendre en compte pour les nombres.
La bonne solution est de manipuler directement des int soit dans un tableau soit dans une collection et d'opérer le mélange par permutations successives.
Remarque : Math.random n'est pas forcément la meilleure méthode dans ton cas, la classe Random fourni des méthodes plus utiles comme par exemple nextInt.
En complément de la réponse e Whismeril je rajouterai que manipuler un String n'est pas viable. Les nombres de 1 à 5 c'est un cas très particulier mais si on reprends le problème pour aller de 1 à 20 par exemple ça ne fonctionne plus avec un String car il y a plusieurs chiffres à prendre en compte pour les nombres.
La bonne solution est de manipuler directement des int soit dans un tableau soit dans une collection et d'opérer le mélange par permutations successives.
Remarque : Math.random n'est pas forcément la meilleure méthode dans ton cas, la classe Random fourni des méthodes plus utiles comme par exemple nextInt.
Whismeril
- Messages postés
- 15818
- Date d'inscription
- mardi 11 mars 2003
- Statut
- Contributeur
- Dernière intervention
- 16 avril 2021
Bonjour
deux solutions qui marchent quoique tu veuilles tirer au sort sans doublon (jeu de cartes, numéro de 1 à 5, loto , membres d'un jury etc....)
Tu crées et remplies une collection avec tous les éléments possiblement tirés au sort (une List par exemple qui contiendrait 1, 2, 3, 4 et 5).
Une fois que tu as ta collection mélangée, tu en fait un string.
PS, je ne code pas en Java, donc je ne te montrerais pas de code, mais je lis suffisamment le Java pour savoir que mes deux options sont possibles.
deux solutions qui marchent quoique tu veuilles tirer au sort sans doublon (jeu de cartes, numéro de 1 à 5, loto , membres d'un jury etc....)
Tu crées et remplies une collection avec tous les éléments possiblement tirés au sort (une List par exemple qui contiendrait 1, 2, 3, 4 et 5).
- Option1
- dans une boucle plusieurs fois de suite (à toi de voir combien de fois), tu génères aléatoirement deux index de 0 à 4 et tu inverse la place des 2 éléments. Ceci fonctionne aussi avec un tableau.
- Option2
- dans une boucle qui dure tant que la collection contient des éléments, tu génères aléatoirement un index entre 0 et le nombre d'éléments actuels de la collection. Tu ajoutes l'élément correspondant à l'index dans une seconde collection et tu l'enlèves de la première.
Une fois que tu as ta collection mélangée, tu en fait un string.
PS, je ne code pas en Java, donc je ne te montrerais pas de code, mais je lis suffisamment le Java pour savoir que mes deux options sont possibles.