Générer 1 nombre aléatoire sans doublon java

Fermé
muntu - 10 juil. 2010 à 19:12
 muntu - 12 juil. 2010 à 12:12
Bonjour,

Je suis nouveau en programmation, est ce que veut bien m'aider à m'expliquer comment générer un nombre aléatoire sans doublon en java.
Au je dois remplir un tableau à deux dimension en java à l'aide d'un random, mais sans doublon. Si le nombre existe déjà dans le tableau je l'enregistre pas.

Merci d'avance.
A voir également:

4 réponses

loupius Messages postés 697 Date d'inscription dimanche 1 novembre 2009 Statut Membre Dernière intervention 31 décembre 2017 148
12 juil. 2010 à 00:07
Inutile de faire des doublons (j'ai demandé la suppression;-) )
Quelque soit le langage utilisé, la solution est dans la question:
- pour un tableau de n cases, faire une boucle n fois,
- générer un nombre aléatoire,
- si le nombre existe déjà (comparaison avec les cases déjà remplies), relancer la boucle sans incrémentation du nombre de boucles.
Rien de plus simple !
Bonne continuation.
1
Je n'ai pas compris votre démarche, vous pouvez êtes un peu plus explicite svp ?
0
Breub62 Messages postés 2989 Date d'inscription lundi 7 juin 2010 Statut Membre Dernière intervention 17 avril 2014 369
12 juil. 2010 à 12:06
Je pense que ça l'est assez... Tu sais faire une boucle? Tu sais générer un nombre aléatoire? Tu sais parcourir ton tableau? Par chaque valeur du tableau, tu sais tester si elle est identique au nombre aléatoire généré? Tu sais insérer un nombre dans un tableau? Sinon précise ce qui te pose problème.
Bon courage ;-)
0
mon problème au fait je sais pas trop quoi faire, mais ici j'ai éssayé de me servir d'une fonction de recherche que j'ai trouvé dans le site zéro : ( java-tableau).

Seulement j'ai des zéros partout.


Si vous pouvez m'expliquer ce qui ne va pas dans mon code, ou soit me proposer une solution plus clair et plus pratique.

Merci d'avance.








for(int i=0; i<tab.length; i++)

{
for(int j=0; j<tab[i].length; j++)

{


Random r = new Random();
int valeur = 1 + r.nextInt(9);

tab_test[count] = valeur;

count++;




// for(int l=0; l<tab[i].length; l++)

//{
while((count1 < tab_test.length) && (valeur!= tab_test[count1]))

{
count1++;

if(count1>tab_test.length) {

tab[i][j]= valeur;
}



}







System.out.print(tab[i][j]);



}
System.out.println("");

}
S
0