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

Fortran Discussion :

cpu_time plus précis


Sujet :

Fortran

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 70
    Par défaut cpu_time plus précis
    Bonjour,

    Dans un programme je suis amené à générer des nombres aléatoires, et comme j'ai besoin qu'ils soient tous différents je change le germe grâce à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    call srand(time(1)+time(2)+time(3))
    où dans chacune des valeurs de time sont respectivement placées les valeurs des heures, minutes et secondes.

    Mon problème est que ce changement de germe est dans une boucle, et s'execute plusieurs fois par seconde. Du coup même pour une boucle de 100 itérations je me retrouve toujours avec le même germe (puisqu'il ne s'est pas encore écoulée une seconde).

    Connaissaiez-vous une technique pour que le germe soit modifié beaucoup plus rapidement que juste toutes les secondes?

    Merci

  2. #2
    Membre Expert
    Avatar de SpiceGuid
    Homme Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 704
    Par défaut
    Une piste possible: sur les processeurs Pentium et supérieurs il existe une instruction qui lit le compteur d'horloge en 64 bits.

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 70
    Par défaut
    J'ai vu qu'en C il y a une fonction qui permet de calculer à la nanoseconde près.

    Je n'en demande pas tant, mais un peu mieux que la seconde serait quand même appréciable.

  4. #4
    Membre émérite
    Homme Profil pro
    Inscrit en
    Décembre 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2007
    Messages : 758
    Par défaut
    bonjour,

    pourquoi vouloir réinitialiser le seed plusieurs fois dans le programme ? c'est finalement une bonne façon de faire apparaitre le problème que tu observes

    à ta place j'initialiserai le seed une et une seule fois par programme.

  5. #5
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 70
    Par défaut
    Justement non, puisque pour un même germe j'aurais des valeurs pseudo-aléatoires, alors que moi ce qu'il me faut ce sont des valeurs différentes à chaque fois (en fait dans mon programme, si le tirage ne me convient pas je lui demande d'en faire un autre, donc si les valeurs ne changent pas ça ne sert à rien).

  6. #6
    Membre émérite
    Homme Profil pro
    Inscrit en
    Décembre 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2007
    Messages : 758
    Par défaut
    tu auras toujours des valeurs pseudo-aléatoires, même si tu changes plusieurs fois le seed au cours d'un même programme.

    si tu as le même seed entre deux exécutions d'un même programmes oui en effet, tu auras toujours la même suite de nombres mais il suffit d'avoir un seed différent à chaque programme (à moins que tu lances ton programme plusieurs fois par secondes ) ce n'est pas la peine d'initialiser le seed à chaque fois que tu veux faire un rand.

Discussions similaires

  1. Plus précis que time() ?
    Par Invité dans le forum VBScript
    Réponses: 0
    Dernier message: 17/01/2008, 15h18
  2. Quel chrono est le plus précis ?
    Par pat-trix dans le forum Langage
    Réponses: 20
    Dernier message: 18/11/2006, 17h18
  3. Un timer plus précis que SDL_GetTicks()
    Par goof_22 dans le forum SDL
    Réponses: 1
    Dernier message: 29/10/2006, 19h34
  4. Plus précis que datetime
    Par rvzip64 dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 19/01/2006, 16h12
  5. [Info]Plus précis que System.currentTimeMillis()
    Par SuperCed dans le forum API standards et tierces
    Réponses: 6
    Dernier message: 10/06/2005, 14h07

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