Generer un tableau aleatoirement a partir d'un meme tableau en java

trouka06 Messages postés 2 Date d'inscription dimanche 5 mars 2006 Statut Membre Dernière intervention 4 janvier 2007 - 5 mars 2006 à 23:19
tucobouch Messages postés 194 Date d'inscription vendredi 17 février 2006 Statut Membre Dernière intervention 1 mai 2009 - 6 mars 2006 à 15:05
salut,
je suis entrain de faire mon projet fin d'etude et j'ai un probleme de
generer un tableau aleatoirement a partir d'un meme tableau en java
exemple: j'ai un tableau t=1 2 3 ->2 1 3 ou 3 2 1 ou 3 1 2...
je vais generer un boucle de facon que a chaque etiration je genere un tableau qui est different a l'autre

1 réponse

tucobouch Messages postés 194 Date d'inscription vendredi 17 février 2006 Statut Membre Dernière intervention 1 mai 2009 50
6 mars 2006 à 15:05
Si j'ai bien compris, tu veux que le nouveau tableau contienne les memes valeurs mais dans un ordre different du premier.

Tu peux essayer cet algo :

int tab[] //tableau des valeurs de depart
int n //nb d'elements dans le tableau

Pour i=0 à n
j=random()*n //random : renvoi une valeur comprise entre 0 et 1
//permute les cellules i et j
c=tab[j]
tab[j]=tab[i]
tab[i]=c
fpour

Ainsi, avec cet algo, chaque case du tableau est permutée avec une autre case du tableau permettant de garantir :
-un mélange des valeurs
-l'unicité des valeurs

En JAVA, ça se traduirait par exemple :

//test :
int tab[]={1,2,3,4,5,6,7,8,9,10};
for(int i=0;i<tab.length;i++)
{
int j=(int) (Math.random()*tab.length);
int c=tab[j];
//permutation
tab[j]=tab[i];
tab[i]=c;
}
for(int i=0;i<tab.length;i++)
System.out.println(tab[i]);
0
Rejoignez-nous