Je tente de générer un tableau 2d à l'aide d'un générateur aléatoire. fondamentalement, chaque colonne devrait contenir une valeur aléatoire entre 1 et 50 qui n'est pas répétée mais le problème est, je ne peux pas obtenir une valeur de répétition sur la même ligne, ou n'importe quelle autre ligne ou colonne dans le programme. En d'autres termes, chaque entier I ne devrait s'afficher qu'une seule fois. Mes objets ont été créés via une liste chaînée et j'y intégrerai probablement l'algorthim une fois que je l'aurai compris, mais pour l'instant, voici ce que j'ai fait.Générateur aléatoire Java sans répétition
int[] array = new int[50];
for(int i=1;i<=9;i++)
{
int[] grades = new int[5];
for(int j=0;j<=4;j++)
{
int unique = gen.nextInt(50)+1;
grades[j] = unique;
}
list.add(new Student(i, grades));
}
System.out.println(list);
Ma sortie:
Student1: 20 49 45 16 13
Student2: 28 10 11 30 6
Student3: 13 25 37 31 49
Student4: 8 23 8 12 32
Student5: 22 18 35 2 7
Student6: 35 8 16 23 36
Student7: 35 3 15 42 2
Student8: 43 12 44 2 35
Student9: 12 21 36 23 12
Donc, ma question est la suivante. Comment puis-je implémenter la génération aléatoire sans répéter les valeurs. Normalement j'essaierais une liste de collection maintenant, mais j'essaye de faire ceci using java.util.Random Personnellement, je ferais ceci d'une manière différente mais je suis instruit. Merci
Simple et élégant, c'est la bonne solution. – nook
C'est la solution pratique mais existe-t-il un moyen de l'implémenter en utilisant le générateur Random()? Je suis sûr que je suis chargé de le faire de cette façon. – user2188838
@ user2188838: Bien sûr, dans ce cas, faites ce que vlad-ardelean a dit. Collections.shuffle utilise un générateur aléatoire, btw. –