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 :

liste de nombres aléatoire sans doublon


Sujet :

Langage Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 20
    Points : 14
    Points
    14
    Par défaut liste de nombres aléatoire sans doublon
    Bonjour,

    Savez-vous s'il existe une méthode d'API qui peut générer une liste de 32 nombres entiers de manière aléatoire (compris de 1 à 32 et sans doublon) s'il vous plait ?

    Merci.

    rudy.

  2. #2
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    Heu... 32 nombres entiers entre 1 et 32... ca fait tous les nombres en 1 et 32 !

    Quel est ton problème ???

    a++

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 20
    Points : 14
    Points
    14
    Par défaut ...
    Si au lieu de 32, je parlais de 5. Je voudrais un générateur de tableau qui me donne par exemple :

    3, 2, 5, 1, 4

    Ainsi de suite.

    ça répond à ta question ?
    Je ne souhaite bien sûr pas la liste des 32 premiers entiers dans l'ordre croissant. ça je peux le faire tout seul.

    D'ailleurs je sais faire aussi ce que je demande mais de manière assez "laborieuse". J'emploie random.nextInt() et je vérifie à chaque fois que c'est un entier qui n'est pas déjà tombé.

    rudy.

  4. #4
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    En fait tu veux mélanger les valeurs c'est cà ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    	List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
    	System.out.println(list);
    	Collections.shuffle(list);
    	System.out.println(list);
    a++

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 20
    Points : 14
    Points
    14
    Par défaut aléatoire ?
    Merci.

    La méthode shuffle est aléatoire ?

    rudy.

  6. #6
    Membre chevronné
    Avatar de Deadpool
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    1 312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 1 312
    Points : 2 011
    Points
    2 011
    Par défaut
    Citation Envoyé par rudyhadoux2 Voir le message
    Merci.

    La méthode shuffle est aléatoire ?

    rudy.
    Oui.

    Citation Envoyé par La javadoc
    Randomly permutes the specified list using a default source of randomness. All permutations occur with approximately equal likelihood.

    The hedge "approximately" is used in the foregoing description because default source of randomness is only approximately an unbiased source of independently chosen bits. If it were a perfect source of randomly chosen bits, then the algorithm would choose permutations with perfect uniformity.

    This implementation traverses the list backwards, from the last element up to the second, repeatedly swapping a randomly selected element into the "current position". Elements are randomly selected from the portion of the list that runs from the first element to the current position, inclusive.

    This method runs in linear time. If the specified list does not implement the RandomAccess interface and is large, this implementation dumps the specified list into an array before shuffling it, and dumps the shuffled array back into the list. This avoids the quadratic behavior that would result from shuffling a "sequential access" list in place.
    http://java.sun.com/javase/6/docs/ap...java.util.List)

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    338
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2008
    Messages : 338
    Points : 402
    Points
    402
    Par défaut
    Sinon tu peux faire aussi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public Collection getListAleatoire(int nombre) {
    Set nombres = new HashSet();
    Random rnd = new Random();
    while (nombres.size() != nombre) {
    nombres.add(new Integer(rnd.nextInt(nombre + 1)));
    }
     
    return nombres
    }

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 20
    Points : 14
    Points
    14
    Par défaut merci
    Merci pour vos réponses qui me conviennent totalement.

    Par contre, le passage de la javadoc il faudra que j'approfondisse... Pas tout saisi...



    rudy.

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 20
    Points : 14
    Points
    14
    Par défaut pb
    J'ai des problèmes de compilation pour les deux "méthodes" :

    J'utilise Netbeans 6.5 et souhaite la garder pour différentes raisons (Struts entre autres).

    generics are not supported -> pour List<Integer> ou Set<Integer>
    et la méthode add attend un Object...

    Vous savez comment résoudre ce problème ?

    Merci.

    rudy.

  10. #10
    Membre chevronné
    Avatar de Deadpool
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    1 312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 1 312
    Points : 2 011
    Points
    2 011
    Par défaut
    Citation Envoyé par rudyhadoux2 Voir le message
    J'ai des problèmes de compilation pour les deux "méthodes" :

    J'utilise Netbeans 6.5 et souhaite la garder pour différentes raisons (Struts entre autres).

    generics are not supported -> pour List<Integer> ou Set<Integer>
    et la méthode add attend un Object...

    Vous savez comment résoudre ce problème ?

    Merci.

    rudy.

    Les Generics (paramétrage des collections style List<Integer>) ne sont apparus qu'à partir de Java 5.0.

    Il faut vérifier la version de Java que tu utilises et le paramétrage de Netbeans concernant le "source level".

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 20
    Points : 14
    Points
    14
    Par défaut ok
    J'ai mis JDK6 et ça passe...

    Merci.

    rudy.

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

Discussions similaires

  1. Liste dans un formulaire, sans doublon
    Par yao67 dans le forum VBA Access
    Réponses: 5
    Dernier message: 15/06/2007, 18h36
  2. Réponses: 2
    Dernier message: 27/05/2007, 22h23
  3. Nombre aléatoire sans doublon
    Par Ardely dans le forum Delphi
    Réponses: 9
    Dernier message: 01/03/2007, 21h54
  4. [MySQL] Sélection aléatoire sans doublon
    Par krapoulos2006 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 20/12/2006, 16h46
  5. Réponses: 13
    Dernier message: 08/12/2006, 10h31

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