Bonjour à tous,
suite à mon précédent problème (résolu avec brio par badaze) je me hurte à un nouveau problème.
Je dispose du tableau suivant :
Comme vous pourrez le voir, le premier niveau contient des dates, le second des tableaux de répartition de personnes à des emplacements (le nombre de tableau de répartition varie d'une date à l'autre).
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
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74 Array ( [01/01/2001] => Array ( [0] => Array ( [A] => joe [B] => pierre [C] => [D] => [E] => ) [1] => Array ( [A] => joe [B] => [C] => pierre [D] => [E] => ) [2] => Array ( [A] => joe [B] => [C] => [D] => pierre [E] => ) ) [02/01/2001] => Array ( [0] => Array ( [A] => joe [B] => pierre [C] => betty [D] => [E] => ) [1] => Array ( [A] => joe [B] => pierre [C] => [D] => betty [E] => ) [2] => Array ( [A] => joe [B] => [C] => pierre [D] => betty [E] => ) [3] => Array ( [A] => joe [B] => [C] => betty [D] => pierre [E] => ) ) ...
Voici comment je pourrais énoncer le problème :
- On ne peut choisir qu'une seule répartition par date
- Sur l'ensemble des dates, la répartition doit être la plus équitable possible
L'objectif étant que sur une semaine, l'écart d'apparition entre pierre, betty et joe soit le plus limité possible afin d'être équitable.
Pour y parvenir, j'avais pensé :
- Parcourir de facçon recursive les dates
- Puis leurs compositions
- Calculer pour chaque composition le nombre d'apparition par personne
- et recommencer la parcours des dates suivantes...
Une fois terminé (avec un très grand nombre de combinaisons) déterminer l'écart minimum entre le plus représenté et le moins représenté, et en déduire la combinaison la plus équitable.
Je bloque cependant sur le parcours récursif, car il est particulier....je dois entrer dans une date, boucler sur les propositions puis reboucler sur les dates et propositions sans rependre la date en cours
Le moins que l'on puisse dire, c'est que j'ai du mal
Il existe peut être une meilleure méthode, je suis preneur dans ce cas !
Quoi qu'il en soit merci pour votre aide éventuelle !
Partager