Bonjour à tous,
J'ai besoin de votre aide pour une question algorithmique.
Voici le problème que je rencontre :
Le contexte : Je suis en train de développer une application de planification pour laquelle les ressources nécessaires dépendent du fonctionnement ou non de certains secteurs. Par exemple, si le Secteur 1 (S1) fonctionne seul, j'ai une configuration. Si S1 et S2 fonctionnent, j'en ai une autre. Si c'est S1 et S3, encore une autre...
Mon problème : je cherche à concevoir un algo qui me permettrait de lister l'ensemble des cas uniques possibles soit, pour 4 secteurs, le résultat suivant :
- S1
- S1 - S2
- S1 - S3
- S1 - S4
- S1 - S2 - S3
- S1 - S2 - S4
- S1 - S3 - S4
- S1 - S2 - S3 - S4
- S2
- S2 - S3
- S2 - S4
- S2 - S3 - S4
- S3
- S3 - S4
- S4
A noter :
* Le nombre de secteurs peut varier de 1 à l'infini (en pratique ça ne devrait pas aller au delà de 10 mais il faut prévoir laaaarge).
* S1 - S2 est identique à S2 - S1.
* Les noms des secteurs seront définis par les administrateurs de l'application donc les traitements de chaînes ne sont pas possibles
* Les identifiants peuvent présenter des "trous" étant donné le besoin d'historisation et la possibilité de stopper un secteur à une date donnée ou la possibilité de prévoir l'ouverture d'un secteur à une date future donnée.
Pour une période donnée, je pourrais donc récupérer ce genre d'informations de ma BDD :
ID | Libellé
1 | Finance
4 | Compta
5 | Ressources humaines
et pour ce cas là, le resultat serait alors :
- 1
- 1 - 4
- 1 - 5
- 1 - 4 - 5
- 4
- 4 - 5
- 5
Je pense vous avoir donné les informations nécessaires.
Je n'ai pas besoin de code tout fait mais simplement de la manière de procéder.
Au cas où il y aurais une fonction toute faite mais que je ne connaitrais pas, je développe en VB.NET
Merciiiiiiiiiiiiiiiiiiiiii
Partager