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.
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....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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; }
Merci d'avance pour votre aide !
Partager