Generer un tableau aleatoirement a partir d'un meme tableau en java
trouka06
Messages postés2Date d'inscriptiondimanche 5 mars 2006StatutMembreDernière intervention 4 janvier 2007
-
5 mars 2006 à 23:19
tucobouch
Messages postés194Date d'inscriptionvendredi 17 février 2006StatutMembreDerniè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
A voir également:
Generer un tableau aleatoirement a partir d'un meme tableau en java
tucobouch
Messages postés194Date d'inscriptionvendredi 17 février 2006StatutMembreDernière intervention 1 mai 200950 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]);