Random + java + chaque fois un nouveau valeur
ascv
-
ramsis1985 Messages postés 5 Statut Membre -
ramsis1985 Messages postés 5 Statut Membre -
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
- Créer un nouveau compte gmail - Guide
- Waptrick java voiture - Télécharger - Jeux vidéo
- 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,