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 :

Nombre aléatoire initialisation microseconde


Sujet :

C++

  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2005
    Messages
    97
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2005
    Messages : 97
    Par défaut Nombre aléatoire initialisation microseconde
    bonjour,

    Dans mon projet j'ai besoin de faire bouger des fourmis aléatoirement, j'ai donc bedoin de générer un nombre aléatoire différent toutes les micro secondes au moins.

    time(NULL) //nombre de seconde depuis le 1er janvier 1970 pas assez précis

    avez vous une idée?

    merci

  2. #2
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2005
    Messages
    97
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2005
    Messages : 97
    Par défaut
    J'ai oublié de dire que suis sous linux.

    merci

  3. #3
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    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 395
    Par défaut
    nombres vraiment aléatoires, ou pseudo-aléatoires suffisent ?
    rand() toutes les microsecondes, initialisés une fois au début du process par srand(time(NULL))...
    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.

  4. #4
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 294
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 294
    Par défaut
    o_O
    FAQ C ?
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  5. #5
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2005
    Messages
    97
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2005
    Messages : 97
    Par défaut
    je m'explique mieux :

    time(NULL) retourne le nombre de seconde et non microseconde (j'ai réussi à avoir des milli mais ça ne suffit pas en effet un processeur existe une fonction en moins de 1 milliseconde)

    srand (time(NULL)) initialise la chaine de nombre aléatoire le pb c'est que time(NULL) change que toutes les secondes !!!!

    J'exécute une fonction de déplacement dans une liste d'élement qui à chaque exécution doit créer un nombre aléatoire mais la boucle pour par exemple 1000 élements sera terminée en moins d'une milliseconde c'est sur donc tous mes elements auront eu le meme nombre aléatoire.

  6. #6
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2005
    Messages
    97
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2005
    Messages : 97
    Par défaut
    dsl si je suis pas super clair mais je n'ai pas bcp dormit cette nuit à cause de mon projet

  7. #7
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 294
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 294
    Par défaut
    J'avais donc parfaitement intuité ton problème.
    Remplace le "?" par "!" dans mon précédent message.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  8. #8
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    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 395
    Par défaut
    Citation Envoyé par ederf
    je m'explique mieux :
    Pas tellement, en fait..
    time(NULL) retourne le nombre de seconde et non microseconde
    En effet, mais on s'en fiche, puisque je propose de ne l'appeler qu'une seule fois au début du process. C'est quand même dingue que le gras n'ait pas suffit...
    (j'ai réussi à avoir des milli mais ça ne suffit pas en effet un processeur existe une fonction en moins de 1 milliseconde)
    OSEF.
    srand (time(NULL)) initialise la chaine de nombre aléatoire
    Ben oui, une chaîne de nombres pseudo-aléatoires. Ce qui veut dire, plusieurs...
    le pb c'est que time(NULL) change que toutes les secondes !!!!
    OSEF, voir plus haut.
    J'exécute une fonction de déplacement dans une liste d'élement qui à chaque exécution doit créer un nombre aléatoire mais la boucle pour par exemple 1000 élements sera terminée en moins d'une milliseconde c'est sur donc tous mes elements auront eu le meme nombre aléatoire.
    Ben non, chaque appel de rand() donne un nombre pseudo-aléatoire différent, sauf bien sûr si quelqu'un est assez abruti pour rappeler srand() à chaque itération... Mais personne n'est assez con pour faire ça, n'est-ce paaaaaaas ?
    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.

  9. #9
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2005
    Messages
    97
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2005
    Messages : 97
    Par défaut
    merci pour l'explication,

    bon c'était pas si simple que ça je travaille en objet et vraiment pas eu l'idée d'initilisialiser ma variable aléatoire dans une autre classe que là où je fais ma strategie de déplacement (une erreur de jeunesse surement)

    si je peux me permettre une remarque, c'est dommage les insultes "con" pour un forum aussi riche que devellopez.net et avec autant de renommé.


    merci quand meme

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

Discussions similaires

  1. p'tite question de cryptage ( nombre aléatoire )
    Par smyley dans le forum Algorithmes et structures de données
    Réponses: 53
    Dernier message: 08/11/2004, 10h07
  2. Nombres aléatoires
    Par Mat 74 dans le forum Assembleur
    Réponses: 20
    Dernier message: 29/08/2004, 13h31
  3. recherche algo de génération de nombre aléatoire
    Par Pascale38 dans le forum MFC
    Réponses: 2
    Dernier message: 26/01/2004, 14h20
  4. Nombre aléatoire en SQL
    Par sqlnet dans le forum Langage SQL
    Réponses: 8
    Dernier message: 19/08/2003, 12h38
  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, 16h30

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