Bonjour à tous,
j'aimerais savoir s'il existe une fonction équivalente de la fonction randn de matalab sous en langage c . car je cherche à générer des variables aléatoire de moyenne 0 et d'écart type =1 par exemple. merci
Bonjour à tous,
j'aimerais savoir s'il existe une fonction équivalente de la fonction randn de matalab sous en langage c . car je cherche à générer des variables aléatoire de moyenne 0 et d'écart type =1 par exemple. merci
voir la fonction rand() et srand() pour intialiser.
Liens ici pour les man pages : rand et srand.
Lien ici pour une explication de l'utilisation :
http://c.developpez.com/faq/?page=no..._random_bornes
Salut, oui c'est possible. Il faut que tu utilises l'algo de Box-Muller
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 #define TWOPI (6.2831853071795864769252867665590057683943387987502) /* 2 * pi */ /* RAND is a macro which returns a pseudo-random numbers from a uniform distribution on the interval [0 1] */ #define RAND (rand())/((double) RAND_MAX) /* RANDN is a macro which returns a pseudo-random numbers from a normal distribution with mean zero and standard deviation one. This macro uses Box Muller's algorithm */ #define RANDN (sqrt(-2.0*log(RAND))*cos(TWOPI*RAND))
Certes le log peut renvoyer 0 mais si U suit une loi uniforme sur [0, 1], la probabilité que U soit nul est égale à 0...
TWOPI dépasse largement le nombre de digits. Je le sais, mais je n'avais pas envie de me prendre la tête entre un compilo 64 bits, 32 bits, PC, LINUX, MAC. Donc sur Maple, j'ai fait un Digits=50 pour une question de "sécurité"
Partager