IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Fonction de génération aléatoire gaussienne


Sujet :

Langage PHP

  1. #1
    Membre averti Avatar de Linio
    Inscrit en
    Octobre 2005
    Messages
    431
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 431
    Points : 332
    Points
    332
    Par défaut Fonction de génération aléatoire gaussienne
    Je me demandais s'il existait une fonction permettant de générer un nombre aléatoire selon une courbe gaussienne dont on renseigne la moyenne et l'écart type.

    J'ai bien la vision de comment coder une telle courbe, mais je ne vois pas comment injecter les probabilités de cette courbe dans une fonction qui génèrerait aléatoirement un nombre à partir de celle ci.

    J'ai cherché sur le net et il me semble qu'il n'existe que des fonctions de génération uniforme sur php, et je n'ai trouvé aucun algorithme qui me permette de faire une génération selon une loi normale.

    Si quelqu'un a été confronté à ce problème, je serais ravi d'avoir une autre perspective là dessus, j'avoue que là je suis bloqué.
    Linio

  2. #2
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut

    Un début d'élément de réponse ici : http://www.developpez.net/forums/sho...d.php?t=331848

  3. #3
    Membre averti Avatar de Linio
    Inscrit en
    Octobre 2005
    Messages
    431
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 431
    Points : 332
    Points
    332
    Par défaut
    J'avais vu quelque chose de ce goût là sur le net, j'avoue que j'avais pas bien compris comment ça marchait, je vais y jeter un oeil, c'est super merci pour la réponse!
    Linio

  4. #4
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut
    Si tu trouves une solution concluante à ton problème, penses à la poster

  5. #5
    Membre averti Avatar de Linio
    Inscrit en
    Octobre 2005
    Messages
    431
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 431
    Points : 332
    Points
    332
    Par défaut
    Et bien j'ai implémenté la fonction comme énoncé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function gaussianRandom($variance,$moyenne){
    	$gen1 = rand(1,10000)/10000;
    	$gen2 = rand(1,10000)/10000;
     
    	return round(sqrt(-2*log($gen1))*cos(2*pi()*$gen2)*$variance+$moyenne);
     
    }

    Et j'ai fait quelques calculs de répartition:

    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    [50-150%]
    49:2
    50:1
    51:2
    52:3
    53:11
    54:12
    55:12
    56:16
    57:28
    58:45
    59:46
    60:66
    61:80
    62:135
    63:135
    64:193
    65:247
    66:302
    67:408
    68:491
    69:651
    70:688
    71:902
    72:1165
    73:1241
    74:1561
    75:1817
    76:2279
    77:2709
    78:3014
    79:3646
    80:4114
    81:4698
    82:5356
    83:6095
    84:6759
    85:7645
    86:8435
    87:9290
    88:10022
    89:10839
    90:11903
    91:12399
    92:13358
    93:14083
    94:14603
    95:15262
    96:15792
    97:16105
    98:16305
    99:16465
    100:16712
    101:16512
    102:16342
    103:16180
    104:15626
    105:15204
    106:14674
    107:14225
    108:13224
    109:12607
    110:11647
    111:10984
    112:10095
    113:9360
    114:8376
    115:7722
    116:6818
    117:6120
    118:5416
    119:4713
    120:4153
    121:3605
    122:3075
    123:2605
    124:2202
    125:1880
    126:1694
    127:1356
    128:1064
    129:909
    130:732
    131:598
    132:459
    133:388
    134:310
    135:232
    136:193
    137:148
    138:92
    139:78
    140:73
    141:40
    142:34
    143:25
    144:18
    145:14
    146:6
    147:9
    148:7
    149:5
    150:1
    151:2
    Bon je voulais entre 50 et 150 mais je suis pas encore bien à l'aise avec les bornes des lois normales, donc bon, ça colle quand même avec ce que je voulais, je vais voir à changer un peu la variance ou à tronquer mes valeurs si besoin.

    Voili voilou encore merci.
    Linio

  6. #6
    Membre éclairé Avatar de Korko Fain
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    632
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 632
    Points : 718
    Points
    718

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 27/01/2012, 12h12
  2. VBA, génération aléatoire, gaussienne et exp
    Par Raphael025 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 19/02/2011, 23h43
  3. défaut des fonctions de génération de nombres aléatoire type rand()
    Par Christophe30 dans le forum Langages de programmation
    Réponses: 3
    Dernier message: 17/02/2008, 20h21
  4. génération aléatoire
    Par acewb00 dans le forum MFC
    Réponses: 1
    Dernier message: 02/12/2005, 09h46
  5. génération aléatoire de couleur claire
    Par jiraiya dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 25/02/2004, 19h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo