Comment faire des nombres aléatoires ( URGENT ) ! [Java] - Programmation
Marsh Posté le 15-06-2001 à 00:57:50
Il faut d'abord utiliser la classe java.util.Random pour générer des nombres aléatoires. Puis ensuite, l'algorithme suivant devrait suffire :
Marsh Posté le 15-06-2001 à 01:01:52
Euh moi je ferais comme ca, c'est surement pas la meilleure solution mais ca marche (pour des valeurs de 0 à 15, apres si tu tu fais ca pour beaucoup plus de valeurs ca marche pas au top).
poru avoir un tableau de valeurs de 0 à 15 sans repetition t'as qua faire:
int [] monTableau=melange(0,15);
-----------------------------------------------------------------
static int randomInt (int a,int b) //renvoie un int entre a et b inclus
{ double random1=Math.random();
int temp=(int)((Math.abs((a-b-1))*random1)+a);
return(temp);
}
static int [] melange(int a,int b)
{ /** initialisation variables **/
int [] tableResultat=new int[Math.abs((a-b))+1];
boolean [] tableTest=new boolean [Math.abs((a-b))+1]; // tableau permettant de ne pas repeter un nombre
for(int i=0;i<tableTest.length;i++)
{ tableTest[i]=false;
}
boolean ecrit;
/** construction du tableau final **/
for(int i=0;i<tableResultat.length;i++)
{ do{
ecrit=false;
int valeurHasard=randomInt(a,b);
if(tableTest[valeurHasard]==false)// si la valeur n'est pas deja dans le tableau resultat
{ tableResultat[i]=valeurHasard;
tableTest[valeurHasard]=true;
ecrit=true;
}
}while(ecrit==false);
}
return tableResultat;
}
-----------------------------------------------------------------
Marsh Posté le 15-06-2001 à 01:05:12
oops un peu trop tard, la solution de Biface à l'air meilleure que la mienne...
Marsh Posté le 15-06-2001 à 01:08:59
bouyouman> Comme tu tires plusieurs nombres aléatoires, il est préférable de faire :
Code :
|
puis, pour tirer un nombre aléatoire entre 0 et 15 (inclus) :
Code :
|
Appeler Math.random() recrée un objet Random à chaque appel, c'est un peu bête (et aussi plus coûteux).
Marsh Posté le 15-06-2001 à 09:40:21
Merci à vous,
j'avais deja testé une solution équivalente à la tienne bouyouman mais ca fait ramer mon pc à mort et planter le process. Donc j'ai essayer la solution de BifaceMcLeOD qui tourne vraiment bien...
merci je vais pouvoir finir mon jeu en Java.
Marsh Posté le 15-06-2001 à 00:02:32
bon voila, comment mélanger des nombres de 0 à 15 aléatoirement sans prendre deux fois le même ????