Java prb de debutant

Fermé
kevinm3 - 8 oct. 2009 à 01:13
 Utilisateur anonyme - 8 oct. 2009 à 21:45
Bonjour,

Je suis en train de m'initier a java, et j'ai tenté de créer un pb simple qui me permet de générer aléatoirement 5 numéros pour l'euromillion.

Je voudrais fignoler ce prog en admettant que si deux nombres sont identeiques lorsqu'ils sont générés la boucle recommence. voici mon code pour le moment

import java.util.Random;


public class prob {

/**
* @param args
*/
public static void main(String[] args) {
int num = 50;
int eto = 9;

long resultnum = (long) ((num * (num-1)* (num-2) * (num-3) * (num-4))/( 1*2*3*4*5));
long resulteto = (long) ((eto * (eto-1))/(1*2));
System.out.println("Le nombre de combinaisons Euromillion est: " +resultnum*resulteto);


Random r = new Random();
int Min = 0;
int Max = 50;
int v = Min + r.nextInt(Max - Min);
int w = Min + r.nextInt(Max - Min);
int x = Min + r.nextInt(Max - Min);
int y = Min + r.nextInt(Max - Min);
int z = Min + r.nextInt(Max - Min);
if (v == w || v==x || v==y || v==z || w==x || w==y || w==z || x==y || x==z || y==z );


System.out.println("1er : " +v );
System.out.println("2em : " +w );
System.out.println("3em : " +x );
System.out.println("4em : " +y );
System.out.println("5em : " +z );



}

}


voila c'est le if qui me pose probleme je sais pas comment faire recommencer lorsque j'ai 2 nombre identiques.

En basic j'y arrivais avec les calculatrices TI92 ect... avec le simple goto

Lbl debut
...............
if a = b
goto debut
A voir également:

3 réponses

nabil07 Messages postés 140 Date d'inscription vendredi 14 septembre 2007 Statut Membre Dernière intervention 10 avril 2014 64
8 oct. 2009 à 16:33
bonjour,

tu peux mettre le travail de génération des code dans une méthode.
ainsi il sera facile d'appeler la méthode.
0
Utilisateur anonyme
8 oct. 2009 à 21:32
Salut,

La méthode suivante est à adapter au cas "Euromillion"

 public static void nombreAlea()
      {
         boolean encore = true;
         int[] tab = new int[5]; // est initialisé a 0 par défaut
         for (int i = 0; i <5; i++) // on l'initialise a -1 sinon le num. éventuel 0 serait un doublon
            tab[i] = -1;
         int i1 = 0;
         int i2 = 0;
      
         while(encore)
         {
            for (i1 = 0; i1 <5; i1++)
            {
               encore = false; // sera forcé true si doublon
               Random r = new Random(); 
               int Min = 0; 
               int Max = 50; 
               int a = Min + r.nextInt(Max - Min); //trouvé
               for (i2 = 0; i2 <5; i2++)
               {
                  if (a == tab[i2])
                  {
                     encore = true;
                     // supprimer en exploitation normale
                 // >>>>>>>>>>>>>>> d'ici,	
                     System.out.println("Les num. deja obtenus:");
                     for (int i = 0; i <5; i++)
                     {
                        System.out.println(tab[i]); // pour controler deja trouvé
                     }
                     System.out.println("Le nouveau num. obtenu:\n"
                        + a + " est un doublon, on ne le prend pas.(i2 = " + i2 + ")\n");
                  // >>>>>>>>>>>>>>> a ici

                     i1--;
                     break;
                  }
               }
               if (encore == false)
                  tab[i1] = a;
               else
                  break;
            }
         }
         for (i1 = 0; i1 <5; i1++)
         {
            System.out.println("num. " + (i1 +1) + ": " + tab[i1]);
         }
         System.out.println("");
         
      }


Elle est appelée depuis la méthode 'main':

public static void main(String args[])
      {
.....
......
       nombreAlea();
         // Les appels suivants permettent d'obtenir des éventuels doublons
         // qui seront mis en évidence avant les suppréssions de lignes préconisées
         // dans la méthode 'nombreAlea()'
         // sont a supprimer en exploitation normale
       nombreAlea(); 
       nombreAlea(); 
       nombreAlea(); 
       nombreAlea(); 
       nombreAlea();


Cordialement,

Dan
0
Utilisateur anonyme
8 oct. 2009 à 21:45
Ps,

S'il y a un doublon, il n'est bien entendu pas pris, mais les numéros déjà obtenus non plus puisqu'on recommence au début...

Dan
0