générer des variables aléatoires avec boost

générer des variables aléatoires avec boost - C++ - Programmation

Marsh Posté le 01-04-2014 à 11:08:33    

bonjour,
 
comment utiliser boost pour générer des variables aléatoires?
 
J'ai essayé sans boost avec  
 

Code :
  1. srand ((unsigned int)time(NULL));


 
mais il me donne la plupart du temps le même entier.  
 
En fait, j'ai codé un programme ou je fait appel à la fonction rand() plusieurs fois et je veux qu'elle me donne des valeurs différentes.
 
Autre question svp : est ce que l'utilisation de boost peut augmenter le temps d'exécution de mon programme car ce dernier est très important pour moi et il faut que j'essaye de l'optimiser le maximum.
 
Merci d'avance.

Message cité 1 fois
Message édité par kochfet le 01-04-2014 à 11:09:36
Reply

Marsh Posté le 01-04-2014 à 11:08:33   

Reply

Marsh Posté le 01-04-2014 à 12:34:53    

kochfet a écrit :

bonjour,

 

comment utiliser boost pour générer des variables aléatoires?


Tu ne veux pas des variables aléatoires mais des valeurs aléatoires dans tes variables.

 
kochfet a écrit :


J'ai essayé sans boost avec

 
Code :
  1. srand ((unsigned int)time(NULL));




Ce code est correct, mais c'est juste l'initialisation du générateur de nombre aléatoires.

 
kochfet a écrit :


mais il me donne la plupart du temps le même entier.

 

En fait, j'ai codé un programme ou je fait appel à la fonction rand() plusieurs fois et je veux qu'elle me donne des valeurs différentes.


Bah, d'après ce que tu décris, j'imagine que tu réinitialises ton générateur avant chaque appel à srand dans un délai plus court que la précision de la fonction time() ... Du coup, tu initialises le générateur à chaque fois avec la même valeur.

 
kochfet a écrit :


Autre question svp : est ce que l'utilisation de boost peut augmenter le temps d'exécution de mon programme car ce dernier est très important pour moi et il faut que j'essaye de l'optimiser le maximum.

 

Merci d'avance.


Boost a plutôt tendance à être très lourd à la compilation qu'à l'exécution à ma connaissance. Ensuite, je te recommanderais plutôt de faire du code lisible, maintenable et qui fonctionne avant de te poser des questions sur les optimisations parce que, sans vouloir t'offenser, vu les questions que tu poses régulièrement ici et les bouts de code que tu montres, c'est loin d'être acquis.


Message édité par theshockwave le 01-04-2014 à 12:35:16

---------------
last.fm
Reply

Marsh Posté le 01-04-2014 à 13:28:19    

Merci pour la réponse.
 

Citation :

Bah, d'après ce que tu décris, j'imagine que tu réinitialises ton générateur avant chaque appel à srand dans un délai plus court que la précision de la fonction time() ... Du coup, tu initialises le générateur à chaque fois avec la même valeur.


 
J'ai pas bien compris ça.

Reply

Marsh Posté le 01-04-2014 à 13:58:58    

kochfet a écrit :

Merci pour la réponse.
 

Citation :

Bah, d'après ce que tu décris, j'imagine que tu réinitialises ton générateur avant chaque appel à srand dans un délai plus court que la précision de la fonction time() ... Du coup, tu initialises le générateur à chaque fois avec la même valeur.


 
J'ai pas bien compris ça.


 
En gros, tu ne dois avoir qu'un seul appel à srand() dans ton application (sauf besoin spécifique). Ensuite, tu ne fais plus que des appels à rand().
Le comportement que tu décris ressemble fortement à celui qu'on obtiendrait en appelant srand() avant chaque appel à rand().


---------------
last.fm
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed