infogoss
Messages postés20Date d'inscriptionsamedi 27 février 2010StatutMembreDernière intervention13 juin 2010
-
8 mars 2010 à 09:28
Ickik
Messages postés193Date d'inscriptionlundi 27 janvier 2003StatutMembreDernière intervention10 mars 2010
-
10 mars 2010 à 09:51
bonjour a tous ;
j'ai un petit programme qui concerne une matrice qu'on doit remplir ces éléments par un random mais le problème c que dans la même ligne ne doit pas figurer un élément plus qu'une fois .
j'ai essayé d'implémenter une fonction qui fait le test mais j'ai pas arrivé .
voila mes instruction .
indiv=new int[Nindiv+3][Ntache+2]; //initialiser le tableau des individus
Random r = new Random(); // initialiser la varriable aleatoire
//Remplire la table d'individu
i=0;
int k;
while (i<Nindiv){
indiv[i][0]=i;//remplire la case n=0 par le numero d'individu
j=1;
while(j<=Ntache){
indiv[i][j]=(r.nextInt(Ntache));// remplire le reste d'un individu par une squence aleatoire des tachs
j=j+1;
}
i+=1;
}
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013129 8 mars 2010 à 10:55
Salut,
Et bien il te suffit de tester, à chaque ajout dans une case de ton tableau, si la valeur ajoutée ne l'ai pas déjà dans la même ligne du tableau.
______________________________________
AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
Ickik
Messages postés193Date d'inscriptionlundi 27 janvier 2003StatutMembreDernière intervention10 mars 20102 10 mars 2010 à 09:51
int Nindiv = 3;
int Ntache = 4;
int[][] indiv= new int[Nindiv+3][Ntache]; //Ntache = nombre de taches affectees a un individu au max
Random r = new Random(); // initialiser la varriable aleatoire
//Remplire la table d'individu
int i=0;
int k;
while (i<Nindiv+3){
BitSet bitSet = new BitSet(Ntache + 3);//nb de taches total
indiv[i][0]=i;//remplire la case n=0 par le numero d'individu
int j=1;
while(j<Ntache){
int n = r.nextInt(Ntache+3);
if (!bitSet.get(n)) {
bitSet.set(n);
indiv[i][j]=(n);
j++;
}
}
i+=1;
}