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 :
- #include <iostream>
- #include <cmath>
- #include <cstdio>
- #include <cstdlib>
- #include <ctime>
- #include "gauss.h"
- using namespace std;
- double frand(double a, double b){
- return ( rand()/(double)RAND_MAX ) * (b-a) + a;
- }
- void RandomGauss(float* y)
- {
- srand((unsigned int) time(NULL));
- // methode de Box-Muller
- for (int i=0;i<10;i++){
- y[i] = sqrt(-2*log(frand(0,1)))*cos(2.*3.14*frand(0,1));
- }
- }
|
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