Bonjour,
Je sollicite votre aide pour améliorer mon code. Je vous explique.
J'ai génère une liste de périodes aléatoirement dans des groupes (classes) et je souhaiterai que toutes les classes soient couvertes par toutes les périodes. Supposant que j'ai 10 périodes et deux classes je dois avoir un résultat comme ceci (par exemple) :
Remarque : on peut trouver deux périodes qui se répètent dans deux classes différentes mais pas dans la même classe.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 classe 0 nbperiode 7 : 2 3 4 5 6 7 9 classe 1 nbperiode 5 : 0 1 4 6 8
Voici le code que j'ai fait mais le résultat trouvé n'est pas tout à fait correct.
Le résultat du code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 for(int i=0 ; i<NombreClasses ; i++){ // nombre de classes y=0; for(int j=0 ; j<dm ; j++){ // nombre de periodes rando = unifRand(); if (rando<0.5) { Mat_ClasseP[i][y]=j; y++; if (Tab_NbrPer[i]==1000) Tab_NbrPer[i]=1; else Tab_NbrPer[i]=Tab_NbrPer[i]+1; } } // s'il n'y a aucune periode if (y==0) { Mat_ClasseP[i][0] = val_rand(0,dm); Tab_NbrPer[i]=1; } }
Vous remarquez très bien que les 10 périodes ne sont pas toutes couvertes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 classe 0 nbperiode 6 : 0 2 4 7 8 9 classe 1 nbperiode 4 : 1 2 4 7
Merci pour vos réponses
Partager