Nombre aléa gauss avec perl

Fermé
Karim - 26 avril 2005 à 10:48
 Karim - 27 avril 2005 à 18:26
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

7 réponses

Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
26 avril 2005 à 10:55
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
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
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
26 avril 2005 à 13:32
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
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
26 avril 2005 à 13:53
0
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
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
27 avril 2005 à 10:51
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
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
27 avril 2005 à 12:34
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
Merci beaucoup, je vais tester avec cette méthode
0