Fortran et rand
Discutez d'informatique ici !
-
melreg
- Membre Relatif
- Messages: 325
- Enregistré le: 10 Déc 2007, 20:09
-
par melreg » 05 Mar 2009, 12:15
Bonjour,
J'aimerais avoir à disposition 5 nombres pseudo-aléatoires entre 1 et 100 (programmation en fortran90).
Pour ne pas avoir 5 fois le même nombre, j'utilise:
call system_clock(count,count_rate,count_max)
rdm=rand(count)
(l'instruction est à l'intérieur d'une boucle do)
Mais en fait, le temps d'exécution est trop court, et les nombres générés (i.e. qqch du genre nint(99.*rdm)+1) sont les mêmes.
Comment faire dans mon cas? Existe-t-il une commande pour faire attendre le processeur?
Merci d'avance
par Dominique Lefebvre » 07 Mar 2009, 21:29
melreg a écrit:Bonjour,
J'aimerais avoir à disposition 5 nombres pseudo-aléatoires entre 1 et 100 (programmation en fortran90).
Pour ne pas avoir 5 fois le même nombre, j'utilise:
call system_clock(count,count_rate,count_max)
rdm=rand(count)
(l'instruction est à l'intérieur d'une boucle do)
Mais en fait, le temps d'exécution est trop court, et les nombres générés (i.e. qqch du genre nint(99.*rdm)+1) sont les mêmes.
Comment faire dans mon cas? Existe-t-il une commande pour faire attendre le processeur?
Merci d'avance
Bonsoir,
Tu devrais jeter un coup d'oeil ici : [url="http://orion.math.iastate.edu/burkardt/f_src/f90/random_prb.f90"]http://orion.math.iastate.edu/burkardt/f_src/f90/random_prb.f90[/url]
surtout sur les dernières routines...
-
melreg
- Membre Relatif
- Messages: 325
- Enregistré le: 10 Déc 2007, 20:09
-
par melreg » 08 Mar 2009, 11:48
Merci pour le lien!
-
Dlzlogic
- Membre Transcendant
- Messages: 5273
- Enregistré le: 14 Avr 2009, 12:39
-
par Dlzlogic » 16 Avr 2009, 17:49
Bonjour,
La fonction SystemClock sert à initialise la fonction rand. Il suffit (à mon avis) de la mettre en dehors de la boucle et de toute façon qu'elle ne soit appelée qu'une seule fois.
Cordialement
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 3 invités