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

 C++ Discussion :

Avoir 10 nombres aléatoires différents


Sujet :

C++

  1. #1
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 187
    Par défaut Avoir 10 nombres aléatoires différents
    Bonjour,
    Comment faire pour obtenir 10 nombres aléatoires DIFFéRENTS compris entre 0 et 42 ?

    Merci d'avance

  2. #2
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 187
    Par défaut
    Bonjour,
    merci pour la réponse, mais je ne peux pas utiliser celà.
    Je dois utiliser les fonctions suivantes: rand() et srand.

    Merci d'avance.

  4. #4
    Membre Expert
    Avatar de Goten
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 580
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 580
    Par défaut
    Ben la faq te montre comment :s.

  5. #5
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 967
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 967
    Par défaut
    Boe,

    Si tu imposes à une série 10 nombres de valeurs 0 à 42 de ne pas comprendre de doublon, alors tu ne peux pas parler d'aléatoire.

  6. #6
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Citation Envoyé par droggo Voir le message
    Boe,

    Si tu imposes à une série 10 nombres de valeurs 0 à 42 de ne pas comprendre de doublon, alors tu ne peux pas parler d'aléatoire.
    Le loto, c'est 49 boules, tu sorts 6 boules sans remise. Et ce n'est pas aléatoire ?

  7. #7
    Membre Expert
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Par défaut
    il suffit de faire un aleas entre 0et 42 pour le premier tirage, 0 et 41 pour le second ... 0 et 32 pour le 10e et d'écrire à chaque fois une liste de correspondance dont on retire les éléments déjà tirés (peut-être qu'un set serait plus pertinent d'ailleurs).

    bonne chance

  8. #8
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Par défaut
    Ou un random_shuffle dont on prend les n premiers résultats.
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  9. #9
    Membre très actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2010
    Messages
    434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2010
    Messages : 434
    Par défaut
    tu peut faire un tableau d int de taille 42 ensuite tu init toutes les cases a 0
    tu passe a 1 ken tu chope un random le nombre de ton random = la case de ton tableau, si la case est déjà a 1 tu recommence et tu incrémente en même temps un compteur afin de s'avoir combien tu a enregistré de nombre.
    Et voila tu a t'es n nombre sans doublon.

    Désolé si il manque des accents c'est la magie du qwerty :/

  10. #10
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 967
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 967
    Par défaut
    Goe,
    Citation Envoyé par 3DArchi Voir le message
    Le loto, c'est 49 boules, tu sorts 6 boules sans remise. Et ce n'est pas aléatoire ?
    Le problème est totalement différent !

  11. #11
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Citation Envoyé par droggo Voir le message
    Goe,

    Le problème est totalement différent !
    Il s'agit de faire 10 tirages sur 43 boules sans remettre les boules déjà tirées dans le sac. C'est à peu près la seule différence que je vois en ce début de soirée avec le loto où il y a 6 tirages sur 49 boules sans remises des boules tirées dans le sac.

  12. #12
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par défaut
    Je plussoie ceux qui disent que c'est le même problème.

    Et j'utiliserais la même méthode que JolyLoïc: mélanger le tableau et prendre les N premières...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  13. #13
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 967
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 967
    Par défaut
    Hoa,
    Citation Envoyé par 3DArchi Voir le message
    Il s'agit de faire 10 tirages sur 43 boules sans remettre les boules déjà tirées dans le sac. C'est à peu près la seule différence que je vois en ce début de soirée avec le loto où il y a 6 tirages sur 49 boules sans remises des boules tirées dans le sac.
    Justement, avec le programme, on fait tous les tirages avec toutes les boules, et on ne tient pas compte du tirage des doublons, ce qui ne peut pas arriver avec le loto.

    Le loto ayant en supplément l'avantage d'être un tirage véritablement aléatoire (du moins, on peut l'espérer ), alors que le programme utilise un générateur qui est déjà pseudo-aléatoire, et en supprimant les doublons, on brise sa monotonie.

    Ceci étant dit, on est bien obligés de s'en satisfaire ...

  14. #14
    Membre Expert
    Avatar de Goten
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 580
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 580
    Par défaut
    D'un autre côté comme tu l'as dis c'est un PRNG donc oui c'est plus de l'aléatoire, mais ça en était pas non plus à la base . (et ça m'étonnerait qu'il fasse ça pour utiliser dans de la sécurité)

  15. #15
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par défaut
    Mais l'objectif reste le même: Tirage de X boules parmi Y sans remise.

    De plus, on peut tout-à-fait faire un algorithme où les doublons sont impossibles comme au loto. Mais ça a tendance à être lent, alors on préfère généralement le random_shuffle...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

Discussions similaires

  1. Génération de nombres aléatoires différents
    Par The Wretched dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 19/08/2009, 18h16
  2. Nombres aléatoires différents
    Par fikou dans le forum VB.NET
    Réponses: 7
    Dernier message: 07/08/2007, 08h02
  3. comment avoir des nombres aléatoires ?
    Par anisj1m dans le forum C++
    Réponses: 2
    Dernier message: 25/12/2006, 00h12
  4. Tirer 3 nombres aléatoires différents
    Par uado dans le forum ASP
    Réponses: 3
    Dernier message: 23/05/2006, 10h30
  5. Génération de n nombres aléatoires différents
    Par progfou dans le forum Probabilités
    Réponses: 3
    Dernier message: 13/12/2005, 18h29

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