begin process at 2012 05 30 09:59:37
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Débutant(e)

 > 

tirage aléatoire de dés


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

tirage aléatoire de dés

dimanche 3 décembre 2006 à 14:40:58 | tirage aléatoire de dés

figolu94

   Bonjour tout le monde et tout d'abord bravo pour ce site.

   Je dois faire un programme  où on souhaite simuler N tirages simultanés de deux dés et relever pour chaque tirage la somme des dés et j'ai malheureusement des difficultés à y parvenir.

   L'objectif est de simuler N lancés (10,100,1000 ou 10000) de deux dés, de calculer le nombre d'occurences de chaque sommes (nb de fois où on obtient 2,3,...,12) et de représenter ces occurences sur un histogramme.

   J'ai malheureusement du mal pour faire ce programme :( .Je ne sais pas comment m'y prendre pour effectuer deux tirages aléatoires simultaner de dés et aussi comment afficher les résultats obtenus dans un histogramme.

   J'aimerais un peu d'aide et des explications de votre part si celà ne vous dérange pas et je vous remercie d'avance.

Bonne continuation à tous ^^

Ps: J'ai essayé de rechercher des sujets similaires mais malheureusement celà ne m'a pas permis d'avancer dans mon problème
dimanche 3 décembre 2006 à 14:43:10 | Re : tirage aléatoire de dés

figolu94

J'ai oublié de préciser que ces dés sont des dés à 6 faces donc le tirage aléatoire pour un dés ne pourra comporter que des valeurs de 1 à 6
dimanche 3 décembre 2006 à 15:32:05 | Re : tirage aléatoire de dés

yann_lo_san

Pour ce qui concerne les histogrammes, vu que peu d'exemple était sur ce site, tu peux t'inspirer d'une classe que j'ai faite, voir :
http://www.cppfrance.com/codes/GRAPHIQUE-BARRES-PARAMETRABLE-FIXE-OU-ANIME_40208.aspx

Pour le tirage aléatoire, un petit algo suffit :

//
// RandomArray()
// Donne une suite aléatoire sans doublon de 0 à borneSup-1
// en remplissant le tableau donné  
//

void RandomArray(unsigned* pTab, unsigned borneSup)
{
   bool bSameNum;

   for(unsigned i=0; i<borneSup; i++)
   {
        bSameNum = true;

        while( bSameNum )
        {
            pTab[i] = rand() % borneSup;
            bSameNum = false;

            for(unsigned j=0; j<i; j++)
            {
                if( pTab[j] == pTab[i] )
                {
                    bSameNum = true;
                    break;
                }
            }
        }
    }
}

dimanche 3 décembre 2006 à 15:39:08 | Re : tirage aléatoire de dés

yann_lo_san

Précision : a toi d'adapter ce code, si tu appelle une fois cette fonction avec 6 en borne sup, tu auras un tab d'une suite de 0 à 5 aléatoire
(par ex 2 , 0 , 1 , 4 , 5 , 3) cela te donne déjà 6 tirages pour un dé.

dimanche 3 décembre 2006 à 16:42:33 | Re : tirage aléatoire de dés

figolu94

Ok je prend note de tout ça et je te remercie beaucoup de m'avoir aider, je vais oir ce que je peux faire avec tes informations ^^.
   Encore Merci ^^

dimanche 3 décembre 2006 à 17:44:53 | Re : tirage aléatoire de dés

Joky

Membre Club
Réponse acceptée !
Euh
Là je m'excuse mais c'est totalement hors sujet
Je vois pas pourquoi on ne mettrai pas de doublon dans le lancement de dés
Un dé ça reste un dé...

int des1 = (rand() % 6) + 1;   //Chiffres en 1 et 6
int des2 = (rand() % 6) + 1;   //Pareil

tabOfOccurrence[des1 + des2 - 2]++;


répéter cette opération autant de fois que tu veux lancer les 2 dés.
Biensur ne pas oublier d'initialiser tabOfOccurrence à 0. ( c'est un tableau de 11 entier parce que les sommes possibles sont 2, 3, 4, ..., 11, 12

Ensuite en ce qui concerne l'histogramme, si t'arrive pas à simuler un lancer de dés, j'pense qu'il est pas convenable d'y songer pour l'instant.

La seule chose dont tu peux être sur, c'est qu'il aura toujours la même forme pour un nombre de lancé très grand.                             *       *
                                                      *       *  
                                             *       *       *       *
                                             *       *       *       *
                                     *      *       *       *       *        
                                     *      *       *       *       *         *   
                             *      *      *       *       *       *         *      
                     *      *      *      *       *       *       *         *       *
             *      *      *      *      *       *       *       *         *       *         *
             2      3      4      5      6       7       8        9       10     11       12

ULARGE_INTEGERJokyQi=QI("Joky"

dimanche 3 décembre 2006 à 18:49:40 | Re : tirage aléatoire de dés

Ombitious_Developper

Salut:

Je ne vois pas la fonction "srand" pour initialiser le générateur les nombres pseudo-aléatoires:

#include <time.h>
// ...


srand ((unsigned) time (NULL));

// ...



dimanche 3 décembre 2006 à 21:30:36 | Re : tirage aléatoire de dés

yann_lo_san

C'était juste pour montrer comment obtenir des suites aléatoires, les doublons sont bien sur possibles avec des dés. Mais il est vrai que si tu as des difficultés avec un
tirage = (rand()%6)+1;
Il faut que tu commences par le début, un bon tuto en C...

dimanche 3 décembre 2006 à 21:41:12 | Re : tirage aléatoire de dés

figolu94

   Merci Joky pour le message c'est vrai que c'est pas mal comment tu expliques et ouais pour l'histogramme je devrais obtenir une forme similaire. J'ai juste pas trop compris  "des1 + des2 -2", pourquoi on a un "-2" à la fin et aussi le "++" à la fin, après les crochet.

   J'aimerais quelques précisions stp, encore Merci ^^

lundi 4 décembre 2006 à 11:31:59 | Re : tirage aléatoire de dés

Joky

Membre Club
Oui et j'ai aussi oublier de déclarer mon tableau tabOfOccurrence :D
Non mais si on joue à ça on a pas fini lol, donc je laisser le srand aux soins du programmeur :)

Et sinon ptite explication

int tabOfOccurence[11] = {0,0,0,0,0,0,0,0,0,0,0};

des1 aura sa valeur comprise entre 1 et 6
des2 aura sa valeur comprise entre 1 et 6
des1 + des2 aura sa valeur comprise entre 2 et 12 ( Vu que tu veux étudier la somme )

un tableau étant indéxé à partir de 0 en C, on retire 2 à la somme...
Donc la case 0, représentera la valeur 2,
         la case 1,                     la valeur 3,
............................................................
         la case i,                       la valeur i+2
et      la case 10,                   la valeur 12

En ce qui concerne l'opérateur ++, c'est un opérateur de post incrémentation (je sais pas si on peut le dire comme ça) donc il est équivalent à i += 1 <-> i = i + 1 <-> i++

Et donc il faut savoir faire la différence entre ++i et i++;

Exemple :
int a;
int i = 5;

a = i++;         //a vaut 5 puis on incrémente i;   i vaut 6 maintenant
a = ++i;         //on incrémente i ( i vaut 7) et on l'affecte à a, d' où a vaut 7

Donc pour finir tu auras ton tableau d'occurrence directement sans aucun effort on peut dire...

ULARGE_INTEGERJokyQi=QI("Joky"


1 2

Cette discussion est classée dans : programme, aléatoire, dés, tirage, malheureusement


Répondre à ce message

Sujets en rapport avec ce message

tirage aléatoire selon une loi gaussienne [ par marmotte33 ] Je cherche à faire un petit programme en c++ permettant d'obtenir une variable aléatoire suivant une loi Gaussienne, en paramétrant la valeur moyenne Choix aléatoire de lettres [ par aschlilbilly ] Bonjour à tous. J'aimerais réaliser un petit programme qui demande à l'utilisateur de taper c (pour consonne) et v (pour voyelle). Si l'utilisateur ta programme de déplacement aléatoire d' un robot [ par jeanjakke ] bonjour je suis en terminale SI et je dois réaliser un programme en C. je dispose d' un robot (pop lob). le but du programme est le suivant : lorsque tirage aleatoire d'un element d'un tableau constitué de doc.pdf [ par sab3000 ] Bonjour à tous, je dois créer un tableau constitué de documents en format pdf et tirer aléatoirement un élément dans ce tableau. J'ai créer un table Récupération d'un mot aléatoire depuis un fichier texte [ par Mornaloce ] Bonjour à tous. Voilà je vous explique mon problème. J'aimerais faire un petit programme qui permet de récupérer un mot aléatoirement dans un fichier probléme pour mon projet [ par nina89 ] [color=red]bonjours tous[/color], Je suis débutant en Programmation et je veut créer en langage C 2 programme et j'y arrive pas[^^sad1] tous ce que pb include en cpp [ par samissam ] bonjour tout le monde; j'ai programme en c que j'arrive pas le compiler acause d'abscence des deux bibliothèque crées par l'utilisateur, (dommage Recherche d'un numéro ligne par ligne [ par Vry ] Bonjour, je suis sur un programme en C où j'ai quelques soucis. Je possède un fichier texte où sont déjà entrer des données, je souhaiterai crée un programme [ par psycholola ] plzzzzzz , aidéééé moi....je veux un programme d c++ qui calcule le plus grand commun diviseur de deux entiers naturel.en utilise l algorithme d eucli programme c++, X10 [ par bastien27100 ] Bonjour je recherche un exemple simple de programme en langage C++, afin d'envoyer des commandes a mes modules X10, par exemple de cette façon : SendA


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,733 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales