Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
4629 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  générer une suite (très grande) de nombre aléatoire

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

générer une suite (très grande) de nombre aléatoire

n°719938
bkadoum
Posté le 09-05-2004 à 18:44:59  profilanswer
 

Je dois générer une suite de nombre aléatoire au début de mon programme.
La fonction rand() pourrait encore aller mais elle génére trop lentement, il faut au moin 5 seconde d'attente avant qu'elle sorte un nouveau nombre. Ca veut dire que si j'attend que le nombre soit différent avant d'initialiser chacune de mes varaibles, il faudrait attendre au moin une heure avant que mon programme démarre!
Comment faire pour qu'a chaque fois qu'on lance rand(), elle renvoie un nouveau nombre? Est-ce qu'il faut utiliser d'autre méthode? j'ai jeté un oeuil aux librairies Boost mais c'est du charabiat pour moi et ca fait des erreurs à la compilation.

mood
Publicité
Posté le 09-05-2004 à 18:44:59  profilanswer
 

n°719940
Taz
bisounours-codeur
Posté le 09-05-2004 à 18:47:20  profilanswer
 

faut au moin 5 seconde d'attente avant qu'elle sorte un nouveau nombre
 
 
mon cul :o

n°719978
bjone
Insert booze to continue
Posté le 09-05-2004 à 20:11:46  profilanswer
 

:heink:

n°719981
neogally
Battle Angel Alita
Posté le 09-05-2004 à 20:17:12  profilanswer
 

c koi c connerie.....:pfff:
 

n°719983
dlxzap
Posté le 09-05-2004 à 20:19:31  profilanswer
 

on tient un winner la !!

n°719991
printf
Baston !
Posté le 09-05-2004 à 20:33:25  profilanswer
 

Ben faut utiliser srand() avant chaque appel de rand() [:spamafote]


---------------
Un matin je me lèverai et il fera beau.
n°719993
schnapsman​n
Zaford Beeblefect
Posté le 09-05-2004 à 20:33:56  profilanswer
 

printf a écrit :

Ben faut utiliser srand() avant chaque appel de rand() [:spamafote]


 
mon cul  :o


---------------
From now on, you will speak only when spoken to, and the first and last words out of your filthy sewers will be "Sir!"
n°719994
printf
Baston !
Posté le 09-05-2004 à 20:34:32  profilanswer
 


 
J'ai dit une connerie :??:


---------------
Un matin je me lèverai et il fera beau.
n°719995
schnapsman​n
Zaford Beeblefect
Posté le 09-05-2004 à 20:35:31  profilanswer
 

printf a écrit :

J'ai dit une connerie :??:


 
t'initialise une seule fois la graine, ça suffit garçon  :o


---------------
From now on, you will speak only when spoken to, and the first and last words out of your filthy sewers will be "Sir!"
n°719996
printf
Baston !
Posté le 09-05-2004 à 20:36:54  profilanswer
 

schnapsmann a écrit :

t'initialise une seule fois la graine, ça suffit garçon  :o


 
Oups [:joce]
 
EDIT : mais pourquoi il lui faut 5 secondes à lui, aussi ? :o


Message édité par printf le 09-05-2004 à 20:37:28

---------------
Un matin je me lèverai et il fera beau.
mood
Publicité
Posté le 09-05-2004 à 20:36:54  profilanswer
 

n°719998
schnapsman​n
Zaford Beeblefect
Posté le 09-05-2004 à 20:37:26  profilanswer
 

[:lorill]


---------------
From now on, you will speak only when spoken to, and the first and last words out of your filthy sewers will be "Sir!"
n°719999
printf
Baston !
Posté le 09-05-2004 à 20:38:03  profilanswer
 


 
mon cul [:totoz]


---------------
Un matin je me lèverai et il fera beau.
n°720055
xterminhat​e
Si vis pacem, para bellum.
Posté le 09-05-2004 à 22:10:59  profilanswer
 

Peut etre qu'il n'a vraiment pas de chance pour qu'a fois qu'il appelle rand(), la fonciton lui retourne le même nombre :) :) :) Vraiment pas de chance...


---------------
Cordialement, Xterm-in'Hate...
n°720057
Taz
bisounours-codeur
Posté le 09-05-2004 à 22:13:35  profilanswer
 

impossible.

n°720073
neogally
Battle Angel Alita
Posté le 09-05-2004 à 22:53:06  profilanswer
 

c'etait un troll c pas grav...

n°720089
printf
Baston !
Posté le 09-05-2004 à 23:13:10  profilanswer
 

neogally a écrit :

c'etait un troll c pas grav...


 
Je me suis ridiculisé pour un vulgaire troll [:tinostar]


---------------
Un matin je me lèverai et il fera beau.
n°720151
nevin0u
Posté le 10-05-2004 à 00:45:16  profilanswer
 

je suis pas sur que ce soit un troll c'est ça le pire xD

n°720174
neogally
Battle Angel Alita
Posté le 10-05-2004 à 01:56:17  profilanswer
 

printf a écrit :

Je me suis ridiculisé pour un vulgaire troll [:tinostar]


 
 :sweat: c des choses qui arrivent  [:spamafote]

n°720177
thermoclin​e
Geek intelligent
Posté le 10-05-2004 à 03:22:08  profilanswer
 

printf a écrit :

Oups [:joce]
 
EDIT : mais pourquoi il lui faut 5 secondes à lui, aussi ? :o


 
Rien a voir avec rand, c'est sûr
 
Ou alors un rand à roulette
 
->[.]

n°720178
printf
Baston !
Posté le 10-05-2004 à 04:45:56  profilanswer
 

thermocline a écrit :

Rien a voir avec rand, c'est sûr
 
Ou alors un rand à roulette
 
->[.]


 
Serait-ce une subtile allusion au PRNG à base de roulette conçu par la RAND Corporation ? :o


---------------
Un matin je me lèverai et il fera beau.
n°720333
bkadoum
Posté le 10-05-2004 à 10:57:05  profilanswer
 

5 secondes environ oui.
Voila ma fonction:
 
int GetRandom(int min, int max)
{
 srand(time(NULL));
 
 return rand() % (max + 1 - min) + min;
}

n°720369
bkadoum
Posté le 10-05-2004 à 11:13:17  profilanswer
 

non j'exagère j'ai refais un teste et ca prend 1 à 2 seconde mais c'est trop lent! faut que ca le fasse 1 fois par instruction.

n°720377
jagstang
Pa Capona ಠ_ಠ
Posté le 10-05-2004 à 11:16:29  profilanswer
 

la lenteur vient d'ailleurs c'est certain... (ah c'était donc pas un troll :sweat: )

n°720381
skeye
Posté le 10-05-2004 à 11:17:55  profilanswer
 

1 à 2s pour ça tu dois vraiment avoir 1 machine de merde là quand même...:heink:
Comme dit plus haut :
1) Appelle srand 1 seule fois au début de ton prog.
2) ensuite utilise directement ton rand(), un appel de fonction ça prend toujoursn un peu de temps...

n°720395
[IQS]Krust​y
Posté le 10-05-2004 à 11:24:21  profilanswer
 

On peut avoir la config de la machine ?
Parce que un 8088 underclocké c pas prévu pour ca à la base :)

n°720399
bkadoum
Posté le 10-05-2004 à 11:26:58  profilanswer
 

skeye a écrit :

1 à 2s pour ça tu dois vraiment avoir 1 machine de merde là quand même...:heink:
Comme dit plus haut :
1) Appelle srand 1 seule fois au début de ton prog.
2) ensuite utilise directement ton rand(), un appel de fonction ça prend toujoursn un peu de temps...


 
ah enfin les chiffres défilent normalement! C'etait tout con en fait! Merci pour l'aide

n°720416
christophe​_d13
L'efficacité à tout prix.
Posté le 10-05-2004 à 11:39:56  profilanswer
 

srand(time(null)) <= responsable !
 
Et puis le générateur interne est pas terrible sous VC++ 6.0
si tu veux une initialisation un peu meilleire : srand(clock())
 
Sinon en faisant un hash du time(null) et en envoyant le tout à srand, cela marche déjà mieux.

n°720441
bkadoum
Posté le 10-05-2004 à 12:08:19  profilanswer
 

ah non c'est pas si simple! le srand() il faut le mettre avant chaque appel de rand() sinon il renvoie toujours la même liste de nombre!

n°720444
skeye
Posté le 10-05-2004 à 12:12:07  profilanswer
 

bkadoum a écrit :

ah non c'est pas si simple! le srand() il faut le mettre avant chaque appel de rand() sinon il renvoie toujours la même liste de nombre!


non.
Voir la réponse précédente de christophe_d13...il faut l'initialiser un peu mieux, stout.

n°720446
bkadoum
Posté le 10-05-2004 à 12:13:51  profilanswer
 

christophe_d13 a écrit :

srand(time(null)) <= responsable !
 
Et puis le générateur interne est pas terrible sous VC++ 6.0
si tu veux une initialisation un peu meilleire : srand(clock())
 
Sinon en faisant un hash du time(null) et en envoyant le tout à srand, cela marche déjà mieux.


 
ouais ta première solution est beacoup plus rapide mais pas encore assez. Si j'initialise 10 chiffres à la suite ils ont tous la même valeur.
Comment tu hash le time(NULL)???

n°720449
Taz
bisounours-codeur
Posté le 10-05-2004 à 12:16:00  profilanswer
 

mais on te dis d'initialiser qu'une seule fois

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  générer une suite (très grande) de nombre aléatoire

 

Sujets relatifs
[PHP] Besoin d'un coup de main: générer un script anti-leechAide pour un petit programme très simple !
compter le nombre de fichiers dans un repertoire ... nombre complexes
pb avec les fichiers, mais tres urgentACCESS et exportation de nombre réels
comment vérifier qu'un champ est bien un nombre dans EXCEL ??[PHP/MySQL] Nombre de lignes dans mysql_fetch_array ?
génerer un rapport sous pdf à partir d'une applic ation javacomparaison de chaine mais de nombre :-/
Plus de sujets relatifs à : générer une suite (très grande) de nombre aléatoire


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)