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 :

generer une serie de nombres aleatoires


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Octobre 2006
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 114
    Par défaut generer une serie de nombres aleatoires
    je voudrais savoir comment utiliser la fonction rand() afin de generer une serie de nombres aleatoires appartenant tous a un intervalle donne. Aussi tous ces nombres devront etre differents:
    Par exemple, si je veux generer 2 nombres aleatoires appartenant a l'ensemble [0,6] et ces nombres doivent etres differents entre eux, comment faire?
    merci d'avance

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Le plus simple sera certainement de générer un tableau avec les nombres de 0 à N, puis de le mélanger avec par exemple std::random_shuffle. Ca évitera de se casser la tête pour éliminer les doublons.

  3. #3
    Membre expérimenté
    Inscrit en
    Décembre 2003
    Messages
    272
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 272
    Par défaut
    Si il ne faut que 2 valeurs, il est plus rapide de faire des tirages dans [1..6] et de rejeter la valeur interdite.

  4. #4
    Membre confirmé
    Inscrit en
    Octobre 2006
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 114
    Par défaut generer une serie de nombres aleatoires
    merci Laurent ton conseil me semble raisonable bien qu'il a des limitations assez remarquables. Par exemple, utilisant ta methode j'aurais toujours tous les nombres de O..N dans ma serie finale.
    Mais bon pour un debut cela fera l'affaire.
    En cas de pb je reviendrai a la charge

  5. #5
    Membre Expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Par défaut
    Pas vraiment. Ton tableau contiendra tous les éléments non ordonnés. Apres ta série finale il suffit que tu prennes un sous ensemble de ce tableau.

    En gros tu veux générer aléatoirement 10 nombres distincts compris entre 0 et 100, donc tu prends un tableau de 101 éléments que tu mélanges comme l'indique Laurent et apres tu prends les valeurs du tableau de 0 à 9.

    Tu as donc bien dix nombres aléatoirement généré entre 0 et 100 et uniques.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 76
    Par défaut nombre aléatoire
    salut alors moi j'ai utilisé le code suivant dans mon tp d'informatique

    code :

    /* Nombre aléatoire à l'aide de la fonction rand()
    *
    * alea = 1+(int) (10.0*rand()/(RAND_MAX+1.0));
    *
    * remplace 10 par le nombre maximum
    * remplace 1 par le nombre minimum
    */

    #include <iostream.h>
    #include <stdlib.h>

    int main(void)
    {

    int alea; //declaration de la variable qui stock le nombre;

    srand ( time(NULL) );

    for(int i=0;i<10;i++){
    alea =1+(int) (10.0*rand()/(RAND_MAX+1.0));
    cout << alea << endl;
    }

    return(0);
    }

  7. #7
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Je ne pense pas que le problème ici soit de générer un nombre aléatoire (chose qui est de toute façon mieux expliquée dans la FAQ C), mais plutôt d'éviter les doublons.

    Pour éviter de resortir les mêmes séries à chaque exécution il faut utiliser srand(), mais ça aussi c'est très bien expliqué dans la FAQ C.

Discussions similaires

  1. Réponses: 1
    Dernier message: 24/05/2014, 13h18
  2. classement par ordre croissant d'une synthese de serie de nombre
    Par oscar.cesar dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 15/11/2007, 23h38
  3. comparaison une serie de nombre avec une autre serie
    Par oscar.cesar dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 30/07/2007, 19h24
  4. Réponses: 1
    Dernier message: 25/03/2006, 19h50
  5. [langage] générer un nombre aléatoire gaussien
    Par kayari dans le forum Langage
    Réponses: 5
    Dernier message: 23/05/2005, 08h12

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