Difficultés pour la distribution gaussienne
Bonjour,
je suis étudiant en 2ème année de sciences physiques.
Au dernier cours on a parlé de distribution gaussienne, pour moi ca était trop vite et je n'ai pas su comprendre le programme qu'on a écrit....
Voici le programme.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| #include <iostream>
#include <cstdlib>
#include <cmath>
using namespace std;
double uniform (float a, float b) {
return a+(float) rand()/RAND_MAX*fabs(b-a);
}
double expo (double a) {
double x = uniform(0,1);
double R;
while (x==1) {
x = uniform(0,1);
}
R = -a*log(1-x);
return R;
}
int main () {
int N = 50;
srand (15);
for (int i = 0; i<N; i++) {
cout << rand () << endl;
}
return 0;
} |
En un premier temps, si je comprends bien, on définit uniform, qui prend des nombres aléatoires et qui les distribue de manière uniforme. Par contre pour le expo j'ai vraiment du mal à voir ce qui se passe....
Merci d'avance pour votre aide !