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 :

Générer des nombres aléatoires suivant une distribution exponentielle


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2009
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2009
    Messages : 134
    Par défaut Générer des nombres aléatoires suivant une distribution exponentielle
    Bonjour,

    je voulais savoir s'il existait un moyen facile de générer des nombres aléatoires suivant une distribution exponentielle de paramètre lambda spécifié ?

    Ou comment la coder soit même si elle n'est pas trop compliquée ?

    Merci.

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    Bonjour

    • faire un tableau de la taille désirée contenant l'exponentielle aux pas souhaités.
    • utiliser rand pour choisir un indice, et remplir un second tableau avec cet indice


    Sinon :

    • choisir un pas
    • utiliser rand pour déterminer le facteur mutliplicatif du pas
    • stocker le point correspondant

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2009
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2009
    Messages : 134
    Par défaut
    Bonjour,

    et merci.

    Qu'est-ce tu entends par "choisir un pas" ?

    Pour faire plus concret peut-être :

    - je veux simuler une suite d'événements (un homme traverse la rue), c'est à dire tirer aléatoirement une suite d'intervalles de temps entre deux hommes qui traversent la rue
    - je sais qu'en moyenne un homme traverse la rue toutes les 5 min (mon lambda)
    - on admet que la durée entre deux événements suit une loi de poisson de paramètre lambda
    - pour tirer mes intervalles, je veux donc un nombre aléatoire qui suive une loi exponentielle négative.

    C'est ce tirage que je cherche à faire en C.

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par fuyo2004 Voir le message
    Qu'est-ce tu entends par "choisir un pas" ?
    ça :


    Citation Envoyé par fuyo2004 Voir le message
    - je sais qu'en moyenne un homme traverse la rue toutes les 5 min (mon lambda)


    Il ne te reste plus qu'à choisir aléatoirement un entier qui sera le facteur multiplicatif de ce pas dans l'exponentielle..

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2009
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2009
    Messages : 134
    Par défaut
    L'entier étant choisi entre 0 et lambda ? C'est aussi simple que ça ?

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    entre 0 et lambda si tu veux avoir une courbe autour de lambda (exp - n), entre 0 et N si tu veux avoir une courbe où les points sont séparés par des parties d'intervalles de 5 minutes (exp -n * 5 )

    Dans ce dernier cas, le N max peut être chosi comme donnant le chiffe minimum (FLT_EPSILON ou DBL_EPSILON)

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

Discussions similaires

  1. [Débutant] générer des nombres aléatoires avec randn() dans une boucle
    Par Anna76 dans le forum MATLAB
    Réponses: 2
    Dernier message: 28/07/2014, 13h55
  2. Réponses: 1
    Dernier message: 19/05/2011, 12h48
  3. Générer des nombres aléatoires
    Par nbeligh dans le forum C++
    Réponses: 6
    Dernier message: 05/09/2006, 16h05
  4. Algo pour générer des nombres aléatoires
    Par Admin dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 12/06/2006, 09h06
  5. Réponses: 2
    Dernier message: 16/05/2006, 17h02

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