Bonjour,
Il faut que je génère la liste de toutes les combinaisons possibles de cardinalité K pour une liste d'élément de N éléments.
Le problème c'est que chacun des éléments de ma liste peut avoir plusieurs états. Il me faut générer toutes les combinaisons possibles de cardinalité K (2< K < N) en prenant en compte les variantes de chacun des éléments, sans mettre dans la combinaison un même élément sous deux états.
Je ne sais pas si je suis très clair, je vais donc vous donner un exemple:
List<Elements> list = (elemA, elemB, elemC)
elemA a 2 états: elemA1, elemA2
elemB a 2 états: elemB1, elemB2
elemC a 2 états: elemC1, elemC2
je dois générer l'ensemble des combinaisons non ordonnées des elements avec les autres peut importe leur état.
Si la cardinalité est 2, je pense que cela donnerait:
(elemA1, elemB1), (elemA1, elemB2), (elemA1, elemC1), (elemA1, elemC2),
(elemA2, elemB1), (elemA2, elemB2), (elemA2, elemC1), (elemA2, elemC2),
(elemB1, elemC1), (elemB1, elemC2),
(elemB2, elemC1), (elemB2, elemC2)
la cardinalité de la liste N est variable. Idem pour la cardinalité K des combinaisons à générer. (il me faudra toutes les combinaisons pour K allant de 2 à N-1)
Mon nombre d'état est fixe (2) pour chacun des éléments de la liste mais tant qu'à faire, je me pose la question d'une solution générique ou chacun des éléments aurait son vecteur d'état de dimension variable.
Quelqu'un a une idée ou déjà fait ce genre de combinatoire?
Mon appli est en C++ mais le langage importe peu.
Merci d'avance!
Partager