Un petit coup de main SVP

Résolu
zicosource Messages postés 5 Date d'inscription dimanche 7 février 2010 Statut Membre Dernière intervention 19 février 2010 - 10 févr. 2010 à 01:03
zicosource Messages postés 5 Date d'inscription dimanche 7 février 2010 Statut Membre Dernière intervention 19 février 2010 - 10 févr. 2010 à 06:48
Bonjour, merci de me corriger si possible :
je veux essayer avec ce code d'afficher toutes les combinaison possibles des trois nombres {1,2,3} aléatoirement.

package toutes;
import java.util.*;

public class toutes {

public static void main (String args[]){

int n=3;

ArrayList l = new ArrayList();
for (int i = 1; i < n+1; i++)
l.add(i);

ArrayList p = new ArrayList();
ArrayList x = new ArrayList();

boolean c;

do{
Collections.shuffle(l);
c=false;
for(int i=0;i<p.size()-n;i+=n){
x.clear();
for(int j=i;j<i+3;j++)
x.add(p.get(j));
if(x.contains(l))
c=true;
}

if(!c){
for(int k=0;k<3;k++)
p.add(l.get(k));
System.out.println(l);
}

}while(p.size()!=18);

}

}

4 réponses

soucygab Messages postés 5 Date d'inscription dimanche 7 février 2010 Statut Membre Dernière intervention 10 février 2010
10 févr. 2010 à 03:31
A je viens de voir le mot "aléatoirement prends alors

ceci

       ArrayList<String> al = new ArrayList();
 for(int i=1;i<n;i++)
for(int j=1;j<n;j++)
  if(j!=i){
    for(int k=1;k<n;k++)
      if(k!=i && k!=j)
        al.add( i + "," + j + "," + k); 
                  }   
Collections.shuffle(al);
for(String current : al) 
  			System.out.println(current);
3
soucygab Messages postés 5 Date d'inscription dimanche 7 février 2010 Statut Membre Dernière intervention 10 février 2010
10 févr. 2010 à 03:11
come on! tu veux y aller de façon aléatoire avec shuffle en espérant qui te brasse les 3! combinaisons par magie. En tant que statisticien, je ne crois pas trop. Tu vas être mieux avec un algo prend n = N! + 1

              for(int i=1;i<n;i++)
for(int j=1;j<n;j++)
  if(j!=i){
    for(int k=1;k<n;k++)
      if(k!=i && k!=j)
        System.out.println( i + "" + "" + j+ "" + k ) ;
                  }
             

ça sent le travail d'école, tu as 100%!
0
zicosource Messages postés 5 Date d'inscription dimanche 7 février 2010 Statut Membre Dernière intervention 19 février 2010
10 févr. 2010 à 03:22
je suis très reconnaissant merci.
j'ai pris n=4 et ça me donne :
123
132
213
231
312
321
0
zicosource Messages postés 5 Date d'inscription dimanche 7 février 2010 Statut Membre Dernière intervention 19 février 2010
10 févr. 2010 à 06:48
merci ça marche, c'est juste pour améliorer le code si vous voulez :
Pour afficher toutes les combinaisons possibles des neuf entiers de 1 à 9.
Merci pour votre aide.

package toutes;
import java.util.*;

public class touteslescombinaisons {

    public static void main(String args[]){

        int n=9;
        int fact=1;

for(int i=n;i>0;i--)
fact = fact*i;


        ArrayList liste = new ArrayList();


        int  [][] resultat = new int [fact][n];


        for(int x1=1;x1<=n;x1++)
            for(int x2=1;x2<=n;x2++)
                if(x1!=x2)
                    for(int x3=1;x3<=n;x3++)
                        if(x1!=x3&&x2!=x3)
                            for(int x4=1;x4<=n;x4++)
                                if(x1!=x4&&x2!=x4&&x3!=x4)
                                    for(int x5=1;x5<=n;x5++)
                                        if(x1!=x5&&x2!=x5&&x3!=x5&&x4!=x5)
                                            for(int x6=1;x6<=n;x6++)
                                                if(x1!=x6&&x2!=x6&&x3!=x6&&x4!=x6&&x5!=x6)
                                                    for(int x7=1;x7<=n;x7++)
                                                        if(x1!=x7&&x2!=x7&&x3!=x7&&x4!=x7&&x5!=x7&&x6!=x7)
                                                            for(int x8=1;x8<=n;x8++)
                                                                if(x1!=x8&&x2!=x8&&x3!=x8&&x4!=x8&&x5!=x8&&x6!=x8&&x7!=x8)
                                                                    for(int x9=1;x9<=n;x9++)
                                                                        if(x1!=x9&&x2!=x9&&x3!=x9&&x4!=x9&&x5!=x9&&x6!=x9&&x7!=x9&&x8!=x9){
                                                                            liste.add(x1);
                                                                            liste.add(x2);
                                                                            liste.add(x3);
                                                                            liste.add(x4);
                                                                            liste.add(x5);
                                                                            liste.add(x6);
                                                                            liste.add(x7);
                                                                            liste.add(x8);
                                                                            liste.add(x9);
                                                                        }
        Collections.shuffle(liste);
        for( int i=0;i<fact;i++){
            for(int j=0;j<n;j++){
                resultat[i][j]=liste.get(i*n+j);
                System.out.print(resultat[i][j]+" ");
            }
            System.out.println("");
        }

    }

}
0
Rejoignez-nous