Random + java + chaque fois un nouveau valeur

Fermé
ascv - 9 nov. 2008 à 23:56
ramsis1985 Messages postés 4 Date d'inscription mardi 3 mars 2009 Statut Membre Dernière intervention 21 avril 2010 - 5 oct. 2009 à 12:39
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
A voir également:

2 réponses

Marco la baraque Messages postés 996 Date d'inscription vendredi 9 mai 2008 Statut Contributeur Dernière intervention 5 novembre 2009 329
10 nov. 2008 à 11:23
Bonjour !
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,
0
ramsis1985 Messages postés 4 Date d'inscription mardi 3 mars 2009 Statut Membre Dernière intervention 21 avril 2010
5 oct. 2009 à 12:39
bien
0