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

Langage Java Discussion :

Explication d'une classe que je ne comprends pas svp


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut Explication d'une classe que je ne comprends pas svp
    Bonjour tout le monde,

    Pourriez-vous me dire comment cette classe fonctionne ?

    Je sais ce qu'elle fait, elle est censée faire 10000 tirages de deux dés et de renvoyer la somme de ces deux dés avec les statistiques.

    J'ai essayer de comprendre le code et de débugger mais il y'a des choses étranges :

    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
    31
    32
    33
    34
    35
    36
    37
    public class LancerDeDes 
    {
    	public static void main (String [] args)
    	{
    		//on crée une constante ici
    		final int lancers = 10000;
    		
                              je ne comprends pas pourquoi on crée un tableau de 12 éléments, alors que dans le résultat on ne le retrouve nulle part
                              int tirages[] = new int [12];
    		int indice;
    		
    		for (int i = 1; i < lancers; i++)
    		{
    			indice = lancer2Des()-1;
    			System.out.println("ici " + indice); // uniquement pour le déboggage
    			System.out.println(i);  //uniquement pour le déboggage
    			tirages[indice]++; //je ne comprends pas du tout ici
    		}
    		
    		System.out.println("Statistiques sur " + lancers + " lancers de des");
    		
    		for (int i = 1; i < 11; i++)
    		{
    			System.out.println("nombre " + i + " sorti " + tirages[i] + " fois");
    			
    		}
    		
    		}
    		
    		public static int lancer2Des()
    		{
    			int de1 = (int) (1+ Math.random()*6);
    			int de2 = (int) (1+ Math.random()*6);
    			int somme = de1 + de2;
    			return somme;
    		}
    	}
    Merci d'avance pour votre aide et bon Dimanche.

    beegees

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    548
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 548
    Par défaut
    Le tableau tirages contient le nombre de tirages en fonction de la somme des deux dés. Par exemple tirages[11] contient le nombre de tirages dont la somme a fait 12

  3. #3
    Membre éclairé Avatar de trax44
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 300
    Par défaut
    ça me parrait bizarre (c'est peut etre que je viens de me reveillé) ; mais j'aurais plutot fait : (voir ligne //@@)
    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
    31
    32
    33
    34
    35
    36
    37
    38
     
    public class LancerDeDes 
    {
    	public static void main (String [] args)
    	{
    		//on crée une constante ici
    		final int lancers = 10000;
     
                              je ne comprends pas pourquoi on crée un tableau de 12 éléments, alors que dans le résultat on ne le retrouve nulle part
                              int tirages[] = new int [12];
    		int indice;
     
    		for (int i = 1; i < lancers; i++)
    		{
    			indice = lancer2Des()-1;
    			System.out.println("ici " + indice); // uniquement pour le déboggage
    			System.out.println(i);  //uniquement pour le déboggage
    			tirages[i]=indice; //@@
     
     
    		System.out.println("Statistiques sur " + lancers + " lancers de des");
     
    		for (int i = 1; i < 11; i++)
    		{
    			System.out.println("nombre " + i + " sorti " + tirages[i] + " fois");
     
    		}
     
    		}
     
    		public static int lancer2Des()
    		{
    			int de1 = (int) (1+ Math.random()*6);
    			int de2 = (int) (1+ Math.random()*6);
    			int somme = de1 + de2;
    			return somme;
    		}
    	}
    parce utiliser un indice aléatoire dans un tableau pour ensuite faire des stats dessu

  4. #4
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut
    Citation Envoyé par the-gtm
    Le tableau tirages contient le nombre de tirages en fonction de la somme des deux dés. Par exemple tirages[11] contient le nombre de tirages dont la somme a fait 12
    Bonjour,

    Merci pour ta réponse.

    Etrangement, dans tous les résultats obtenus, aucun n'est égal à 12.

    Merci encore pour ton aide.

    beegees

  5. #5
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut
    Salut trax44,

    Merci pour ta réponse.

    J'ai copié ce que le Prof à marqué, je vais tester ce que tu dis.

    Merci encore pour ton aide.

    beegees

  6. #6
    Membre éclairé Avatar de trax44
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 300
    Par défaut
    LOL
    bon j'avais pas compris ce que tu voulais faire autant pour moi

    il fallait bien garder "indice" comme indice du tableau. Si il y avait pas de 12 c'est parce que tu avais de mauvais indices dans ta boucle de statistique
    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
    31
    32
    33
    34
    35
    36
     
    public class LancerDeDes 
    {
        public static void main (String [] args)
        {
            //on crée une constante ici
            final int lancers = 100;
     
                              int tirages[] = new int [12];
            int indice;
     
            for (int i = 1; i < lancers; i++)
            {
                indice = lancer2Des()-1;
                System.out.println("ici " + indice); // uniquement pour le déboggage
                System.out.println(i);  //uniquement pour le déboggage
                tirages[indice]++; //@@
            }
            System.out.println("Statistiques sur " + lancers + " lancers de des");
     
            for (int i = 0; i < 12; i++)
            {
                System.out.println("nombre " + (i+1) + " sorti " + tirages[i] + " fois");
     
            }
     
            }
     
            public static int lancer2Des()
            {
                int de1 = (int) (1+ Math.random()*6);
                int de2 = (int) (1+ Math.random()*6);
                int somme = de1 + de2;
                return somme;
            }
        }

  7. #7
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut
    je me suis aperçu que cette ligne était incorrecte :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     for (int i = 1; i < lancers; i++)
    c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for (int i = 1; i <= lancers; i++)
    Mais je me demande toujours comment cette classe fonctionne.

    beegees

  8. #8
    Membre éclairé Avatar de trax44
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 300
    Par défaut
    tu as 11 résultats possible : de 2 à 12 (1 n'est pas possible)
    tu as un tableau qui représente tes 12 résultats possibles

    à chaque fois que tu obtiens le resultat X tu incrémente le case X de ton tableau
    => si tu as dix 12 la case 11 (les cases vont de 0 à 11) sera égale à dix.

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

Discussions similaires

  1. Doit modifier une requête que je ne comprends pas
    Par dldstyle dans le forum Langage SQL
    Réponses: 2
    Dernier message: 20/08/2008, 09h36
  2. une erreur que je ne comprend pas
    Par shyx21 dans le forum C#
    Réponses: 3
    Dernier message: 02/04/2008, 18h25
  3. Une erreur que je ne comprend pas
    Par Macss dans le forum VBA Access
    Réponses: 2
    Dernier message: 01/12/2007, 19h44
  4. [Tableaux] Une erreur que je ne comprend pas
    Par bibom dans le forum Langage
    Réponses: 2
    Dernier message: 01/08/2006, 18h47
  5. [PostGreSQL] une erreur que je ne comprends pas
    Par flo78 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 02/02/2006, 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