Nombre aléa gauss avec perl

Karim -  
 Karim -
Bonjour tout le monde,
J'ai besoin de générer un nombre aléatoire selon la distribution gaussienne compris entre18 et 22. Je programme avec perl version 5.8 sur linux red hat 8.
Est-ce que quelqu'un pourrait m'aider. Merci
A voir également:

7 réponses


 
Je cherche aussi une fonction aléatoire sous perl.
Si tu as un générateur de nombres aléatoires uniformes, tu peux trasnformer ça en aléatoire gaussien par une fonction.
du genre
random_gauss=A*exp((random_uniforme()-20)²/sigma²)
où A est un facteur de normalisation qui doit dépendre de l'écart type sigma.
0
Karim
 
D'abord Merci beaucoup pour la réponse
Je comprends d'après ta réponse qu'il faudra prendre la moyenne égale à la valeur médiane et l'écart type égal à la déviation entre la moyenne et les nombres. Mais pour la constante A?

Puisque tu t'intéresse aux nombres aléatoires sous perl, ce lien devrait t'intéresser :
http://search.cpan.org/~dagolden/Math-Random-OO-0.13/
Et encore merci
0

 
Merci pour le lien.
En fait, la formule que je t'ai donné est fausse. Mais d'après le lien que tu m'a envoyer, il existe une fonction gaussienne aléatoire. et la c'est beaucoup plus simple.
0

 
0
karim
 
En fait je n'ai pas pu installer les packetages dans le lien que je t'ai envoyé, le fichier read me est incomplet.
En ce qui concerne la méthode que tu m'a indiquée, comment on exploite la valeur retournée car la fonction retourne une densité et on s'intéresse au nombre qui correspond à cette densité.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question

 
oui, en effet. C'est la qu'est le problème. J'avais ce problème en maitrise (passage de uniforme à gaussien) mais je me rapel plus comment faire. Il y a peut être une histoire de dérivé ou intégrale.
Désolé de ne pas pouvoir t'aider. Je vais qhercher, je te dirai si je trouve.
0

 
Après quelques tests, la fonction dérivé semble fonctionner
donc :
rand_gauss= -(rand_uniform()-0.5)*exp( (rand_uniform()-0.5)^2/2s)

ensuite, il te reste à adapter s à ton problème.
Puis à ajouter ta moyenne (20)
0
Karim
 
Merci beaucoup, je vais tester avec cette méthode
0