1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
|
public int[] computeSolutions() {
// calcul de la liste de tous les tirages possibles
int[] tirages = new Cnp(N,P).results;
int tiragescount=tirages.length;
// allocation de la liste des solutions
int[] solutions = new int[tirages.length];
int solutionscount=0;
// tant qu'il reste des tirages possibles
while(tiragescount>0) {
// on choisit une grille au hasard dans la liste des tirages restants
int random = (int)(Math.random()*tirages.length);
int grille = tirages[random];
if (grille==0) continue; // a été supprimée => on recommence
// on ajoute la grille a la liste des solutions
solutions[solutionscount++]=grille;
// on supprime les tirages gagnants de la liste des tirages possibles
tiragescount=removeMatching(grille, tirages);
}
// on retourne la liste des solutions
return Arrays.copyOf(solutions, solutionscount);
} |