Random + java + chaque fois un nouveau valeur
ascv
-
ramsis1985 Messages postés 4 Date d'inscription Statut Membre Dernière intervention -
ramsis1985 Messages postés 4 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je veux utiliser la fonction random pour générer des nombres,compris entre 1 et 8, avec chaque fois l'apparition d'un nouveau valeur,c'est à dire après 8 itération j'ai toutes les valeurs sont distinct.
quelqu'un 'un peut m'aider S.V.P
je veux utiliser la fonction random pour générer des nombres,compris entre 1 et 8, avec chaque fois l'apparition d'un nouveau valeur,c'est à dire après 8 itération j'ai toutes les valeurs sont distinct.
quelqu'un 'un peut m'aider S.V.P
A voir également:
- Random + java + chaque fois un nouveau valeur
- Jeux java itel - Télécharger - Jeux vidéo
- Waptrick java football - Télécharger - Jeux vidéo
- Comment créer un nouveau groupe sur whatsapp - Guide
- Créer un nouveau compte gmail - Guide
- Eclipse java - Télécharger - Langages
2 réponses
Bonjour !
Explications :
J'utilise ici 2 structures de données : une map et une linkedList. Dans ces deux structures de données, je vais insérer les valeurs tirées aléatoirement.
La map me permet de tester en temps constant si une valeur a déjà été tirée, mais son inconvénient est que, une fois que tu auras généré tous les nombre, ceux-ci auront été inséré dans n'importe quel ordre (pas forcément dans l'ordre dans lequel tu les as inséré).
La linkedList permet de conserver ton ordre d'insertion.
Pour récapituler, la map sert à tester rapidement si on a déjà tiré le nombre qu'on vient de tirer.
La linkedList à stocker les chiffres générés.
N'hésite pas si tu as des questions.
Cordialement,
import java.util.HashMap; import java.util.Iterator; import java.util.LinkedList; import java.util.List; import java.util.Map; public class Random8 { private static final int MAX_VALUE = 8; public static void main(String[] args) { Map<Integer, Integer> map = new HashMap<Integer, Integer>(); List<Integer> list = new LinkedList<Integer>(); int insertedValues = 0; while (insertedValues < MAX_VALUE) { Integer random = new Integer((int) Math.ceil(Math.random() * 8)); if(!map.containsKey(random)) { map.put(random, null); list.add(random); insertedValues++; } } Iterator<Integer> it = list.iterator(); while (it.hasNext()) { //traitement souhaité (ici affichage) System.out.println(it.next()); } } }
Explications :
J'utilise ici 2 structures de données : une map et une linkedList. Dans ces deux structures de données, je vais insérer les valeurs tirées aléatoirement.
La map me permet de tester en temps constant si une valeur a déjà été tirée, mais son inconvénient est que, une fois que tu auras généré tous les nombre, ceux-ci auront été inséré dans n'importe quel ordre (pas forcément dans l'ordre dans lequel tu les as inséré).
La linkedList permet de conserver ton ordre d'insertion.
Pour récapituler, la map sert à tester rapidement si on a déjà tiré le nombre qu'on vient de tirer.
La linkedList à stocker les chiffres générés.
N'hésite pas si tu as des questions.
Cordialement,