IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

Nombre aléatoire et liste fermée


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2004
    Messages
    85
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Avril 2004
    Messages : 85
    Par défaut Nombre aléatoire et liste fermée
    Bonjour,

    Je souhaite générer un ensemble de nombre aléatoire. Ceux-ci doivent être présent dans une "liste" et on devra tous les retrouver.

    Exemple: je veux générer des nombres aléatoires allant de 0 à 9 (inclut) et je veux avoir tous les nombres de 0 à 9 (inclut): 5,2,3,8,9,6,1,0,4,7

    Voici une partie de mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    int taille = 9;
    private void initialiseVector()
    	{
    		for(int i=0;i<=taille;i++)
    		{
    			liste.add(i);
    		}
    	}
     
    	private void createVector()
    	{
    		Random r = new Random();
    		int nombre;
    		initialiseVector();
     
    		while(!combinaison.containsAll(liste))
    		{
    			nombre = r.nextInt(taille);
    			if(!combinaison.contains(nombre))
    			{
    				combinaison.add(nombre);
    			}
    		}
    	}
    Je pensais retrouvé l'ensemble des nombres dans le vecteur combinaison, mais ce n'est pas le cas. De plus, la méthode createVector() boucle à l'infini.

    Merci

  2. #2
    Membre Expert
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Par défaut
    D'abord, c'est bien de fournir un exemple COURT et qui compile pour qu'on puisse mieux comprendre un problème.

    Ensuite, ton algo me semble sur le principe faible, puisque à ce que je comprends on attend d'avoir trouvé par hasard un nombre correct, et que donc moins on a de chance d'en trouver un, plus cela va durer longtemps ; or, plus on avance vers la fin, moins en a de chance de trouver un nombre correspondant à ceux qui restent, donc plus longtemps cela va durer ; peut être l'explication de ta boucle qui dure tout le temps.

    Je pense qu'il faudrait que tu réduises la plage du hasard à chaque itération, et que par un système quelquonque tu rétablisse la correspondance avec la plage complète.

    Par exemple, au premier coup tu fais le hasard sur 10 ; si tu obtiens 3, tu gardes 3. Deuxième coup, tu fais la plage de hasard sur 9 ; Si tu obtiens 1, tu gardes 1, si c'est 3, 4, etc, tu gardes 4, 5, etc.

    Je sais pas si je suis clair ?...

  3. #3
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    Si c'est entre 0 et 9, il suffit de faire random.nextInt(10);

    Si c'est dans une liste, il faut faire list.get(random.nextInt(list.size()));
    (aléatoire sur les indices)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 12/11/2009, 23h35
  2. liste de nombres aléatoire sans doublon
    Par rudyhadoux2 dans le forum Langage
    Réponses: 10
    Dernier message: 14/09/2009, 19h30
  3. [FLASH MX] Choisir un nombre aléatoire dans une liste
    Par grenatdu55 dans le forum Flash
    Réponses: 4
    Dernier message: 23/04/2005, 22h09
  4. Nombre aléatoire en SQL
    Par sqlnet dans le forum Langage SQL
    Réponses: 8
    Dernier message: 19/08/2003, 13h38
  5. Générer un nombre aléatoire entre 0 et 1 (INCLUS !!!)
    Par haypo dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 22/08/2002, 17h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo