Problème génération nombres aléatoires

Problème génération nombres aléatoires - C++ - Programmation

Marsh Posté le 10-02-2010 à 20:42:34    

Bonsoir,  
 
J'ai un petit problème au niveau de ma génération de nombre aléatoire (qui suivent une loi normale centrée réduite).
 
En effet j'ai crée mon p'tit prog qui me remplit un tableau de 10 float, par des float choisi selon la loi de Gauss :

Code :
  1. #include <iostream>
  2. #include <cmath>
  3. #include <cstdio>
  4. #include <cstdlib>
  5. #include <ctime>
  6. #include "gauss.h"
  7. using namespace std;
  8. double frand(double a, double b){
  9.     return ( rand()/(double)RAND_MAX ) * (b-a) + a;
  10. }
  11. void RandomGauss(float* y)
  12. {
  13. srand((unsigned int) time(NULL));
  14. // methode de Box-Muller
  15. for (int i=0;i<10;i++){
  16. y[i] = sqrt(-2*log(frand(0,1)))*cos(2.*3.14*frand(0,1));
  17. }
  18. }


 
Et je veux l'utiliser dans un main, le problème c'est que quand j'utilise plusieurs fois "RandomGauss()" dans mon main, ca simule a chaque fois la même distribution aléatoire...
 
Pour ceux qui me diront que faut faire srand blabla, ca marche pas il apparait déjà dans mon gauss.cpp et dans mon main.cpp
 
 
Merci d'avance

Reply

Marsh Posté le 10-02-2010 à 20:42:34   

Reply

Marsh Posté le 11-02-2010 à 06:56:57    

srand il faut le faire qu'une fois surtout :o

Reply

Marsh Posté le 11-02-2010 à 11:06:25    

Joel F a écrit :

srand il faut le faire qu'une fois surtout :o


 
Enefé  :o Je croyais avoir testé le srand unique dans le main, mais apparemment non puisque maintenant ca marche  :)  
 
Thanx ! ;)

Reply

Sujets relatifs:

Leave a Replay

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