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 :

Fonction dependante d'une proba.


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Avatar de Choupi
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 223
    Par défaut Fonction dependante d'une proba.
    Bonjour,

    Ce probleme est a mon avis tres simple mais
    Voila, je souhaite executer une fonction avec une certaine probabilité... Par exemple je veux l'executer de maniere aleatoire mais 1 fois sur 2 si ma proba (une constante) vaut 0,5. Je ne vois pas du tout comment realiser ca... random qui tire un chiffre entre combien et combien ? et comment realiser le test pour lancer la fonction ?

    Je m'excuse d'avance si ca vous parait trop bete mais la je tourne en rond Merci d'avance.

  2. #2
    Expert éminent

    Avatar de Anomaly
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 379
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (rand() % 2 == 0) {
      printf("Cas 1\n");
    } else {
      printf("Cas 2\n");
    }
    Ne pas oublier de faire un srand(time(NULL)) en début de programme pour initialiser le générateur de nombres aléatoires.

  3. #3
    Membre expérimenté
    Avatar de Choupi
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 223
    Par défaut
    Ok pour le code,

    mais si la proba change ? genre 0.0001 ? 0.9999 ? Le modulo change mais comment ? bon je sais c'est des maths mais je suis preneur qd meme

    C'est mieux time ou getpid ? j'utilise tjs ce dernier...

  4. #4
    Expert éminent

    Avatar de Anomaly
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 379
    Billets dans le blog
    1
    Par défaut
    Si tu as une probabilité de 1 / n, tu feras ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    switch (rand() % n) {
      case 0:
       /* premier cas */
      break;
     
      case 1:
      /* deuxième cas */
      break;
     
      /* etc... */
     
      case n-1:
      /* dernier cas */
    }
    Bien entendu, n ne peut pas être une variable dans ce cas, tu le remplaces par le nombre effectif.

    Et si tu veux gérer une probabilité de a / n, tu feras pareil, mais en mettant a fois "case".

    Par exemple, pour faire A 1/7 du temps, B 4/7, et C 2/7 du temps.

    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
    switch (rand() % 7) {
      case 0:
      A();
      break;
     
      case 1:
      case 2:
      case 3:
      case 4:
      B();
      break;
     
      case 5:
      case 6:
      C();
    }

  5. #5
    Membre expérimenté
    Avatar de Choupi
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 223
    Par défaut


    Merci bien, j'ai tout ce qu'il me faut. Encore merci.

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 15/02/2005, 18h07
  2. Passer une fonction comme argument à une fonction
    Par Cocotier974 dans le forum Général Python
    Réponses: 4
    Dernier message: 29/06/2004, 13h41
  3. Fonction callback dans une classe
    Par julian_ross dans le forum MFC
    Réponses: 8
    Dernier message: 02/03/2004, 11h42
  4. Thread avec une fonction membre d'une classe
    Par SteelBox dans le forum Windows
    Réponses: 6
    Dernier message: 01/03/2004, 01h15
  5. [VBA-E] Fonction sum() dans une cellule
    Par Gonzo dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 16/12/2002, 10h18

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