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

Macros et VBA Excel Discussion :

Creer des vecteurs de nombres aléatoires sous conditions


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Asset Management
    Inscrit en
    Mars 2016
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Asset Management
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2016
    Messages : 18
    Points : 7
    Points
    7
    Par défaut Creer des vecteurs de nombres aléatoires sous conditions
    Bonjour à tous,

    Dans l'optique de réaliser des simulations, je cherche un moyen de créer des vecteurs de nombre aléatoires qui remplissent certaines conditions et je sèche...

    Pour résumer mon problème, j'essaie de créer des vecteurs de 50 réels (X1, X2...X50) tels que
    Somme des Xi=100 et 0.5<Xi<20

    Je pensais faire une boucle et les générer un par un en baissant la somme, mais la proba n'est pas la même pour tous dans ce cas là...
    Il faut donc probablement tous les générer d'un coup...

    Quelqu'un a une idée?

    Merci!

    Paul

  2. #2
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 183
    Points : 5 515
    Points
    5 515
    Par défaut Une possibilité
    Tirage aléatoire des 50 valeurs xi entre 0 et 1
    Calcul de la somme S
    Chaque valeur est au minimum 0.5, donc il y a 50 * 0.5 = 25 réservés, et reste 75 utiles
    Convertir chaque valeur tirée: xi = xi * 75/S + 0.5

    En attaché, tirage à l'aide d'une macro qui effectue les opérations indiquées.

    Considérant que la somme des 50 valeurs doit être limitée à 100, ce qui signifie que la valeur moyenne est 2, il serait tout à fait extraordinaire que l'une d'entre elles atteigne 20 si l'on utilise la fonction ALEA de distribution normale, mais avec une log-normale cela serait déjà moins improbable (proposé dans le fichier attaché).

    Bonne continuation.
    Fichiers attachés Fichiers attachés

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Asset Management
    Inscrit en
    Mars 2016
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Asset Management
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2016
    Messages : 18
    Points : 7
    Points
    7
    Par défaut
    Bonjour,

    Merci beaucoup, je regarde tout ça.

Discussions similaires

  1. Réponses: 3
    Dernier message: 06/03/2015, 16h43
  2. [XL-MAC 2011] Afficher une donnée aléatoire sous condition
    Par Donv29 dans le forum Excel
    Réponses: 1
    Dernier message: 17/03/2012, 12h17
  3. filtré des lignes aléatoirement mais sous condition
    Par afssaLERH dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 21/11/2008, 15h10
  4. Nombre aléatoire sous access
    Par ToTo13 dans le forum VBA Access
    Réponses: 2
    Dernier message: 05/07/2007, 12h29
  5. Nombres aléatoires + condition
    Par Emilie MARQUOIS-OGEZ dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 24/10/2005, 23h10

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