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

C++ Discussion :

Difficult�s pour la distribution gaussienne


Sujet :

C++

  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    �tudiant
    Inscrit en
    Novembre 2013
    Messages
    1
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1
    Par d�faut Difficult�s pour la distribution gaussienne
    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.

    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;
    }
    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....

    Merci d'avance pour votre aide !

  2. #2
    R�dacteur

    Avatar de Davidbrcz
    Homme Profil pro
    Ing Supa�ro - Doctorant ONERA
    Inscrit en
    Juin 2006
    Messages
    2 307
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 33
    Localisation : Suisse

    Informations professionnelles :
    Activit� : Ing Supa�ro - Doctorant ONERA

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    Par d�faut
    1) utilise la balise code (symbole# dans l��diteur) au lieu du gras.
    2) Tu ne bloques pas sur du C++ mais sur des maths. Ton sujet aurait plus sa place sur ce forum
    3) Mais comme je suis gentil je vais r�pondre.

    uniform devrait te donner un nombre al�atoire entre a et b selon une loi .. uniforme, ie avec une densit� de probabilit� constante. En pratique, il y quelques probl�mes

    Pour transformer cette distribution en une distribution normale, il y a plusieurs m�thodes.

    • Une m�thode peut �tre la transform� de Box-Muller.
    • Toi, tu utilises le lemme suivant : si U suit une loi uniforme sur [0,1], alors X= F^(-1)(U) suit la loi de fonction de distribution F. On veut F une exponentielle, donc l'inverse de F c'est du log. Voir ici page 6 pour une d�monstration

    4) N'utilise JAMAIS du code que tu as �crit toi m�me sur ce genre de chose. Utilise std::normal_distribuion (introduit en C++11)
    "Never use brute force in fighting an exponential." (Andrei Alexandrescu)

    Mes articles dont Conseils divers sur le C++
    Une tr�s bonne doc sur le C++ (en) Why linux is better (fr)

Discussions similaires

  1. Difficulté pour Installer DBDesigner
    Par piff62 dans le forum Applications et environnements graphiques
    R�ponses: 8
    Dernier message: 31/01/2008, 00h01
  2. [JNI] Difficult�s pour utiliser une DLL
    Par etiennegaloup dans le forum Entr�e/Sortie
    R�ponses: 10
    Dernier message: 15/08/2005, 21h29
  3. En difficult� pour faire une requete
    Par Fonzy17 dans le forum Langage SQL
    R�ponses: 10
    Dernier message: 21/03/2005, 10h56
  4. R�ponses: 10
    Dernier message: 22/09/2003, 21h58
  5. Difficult�s pour afficher un pixel � l'�cran
    Par Bubonik software dans le forum C
    R�ponses: 9
    Dernier message: 17/08/2003, 12h48

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