Bonjour tout le monde,
Je vous expose mon probleme :
Jai une table de X lignes contenant chacune une cellules de Y possibilitées. Je voudrais developper (En Delphi 5 sur WinXp pro), une fonction me permettant dobtenir toute les combinaisons possibles.
Exemple :
Table Combinaisons désirées:
Lignes Cellules
A 1;2;3; -> A1 A1 A1 A1 A1 A1 A1
B 2; -> B2 B2 B2 B2 B2 B2 B2
C 1; -> C1 C1 C1 C1 C1 C1 C1
D 1;2;3; -> D1 D1 D1 D2 D2 D2 D3
E 1;2;3; -> E1 E2 E3 E1 E2 E3 E1
Il est clair que la solution passe par une fonction récursive, mais je narrive pas à mettre le doigt sur la logique à suivre.
Jai pour linstant développer lalgo suivant (Naturellement il ne marche pas) :
Procedure RecursSearch(TableOrigine, TableSauvegarde)
//Boucle sur le nombre de possibilités contenu dans la cellule (A1, A2, A3 : i =3)
Pour i = 0 tant que i < TableOrigine[PosCourante].NombreContenu alors
//On Copie lentrée courante (A1, D3, E2, ...) dans la table de sauvegarde
TableSauvegarde.NouvelEnregistrement.IndexChoisi <- TableOrigine[PosCourante].Index[i]
//Si il ny a plus de ligne on à un combinaison complete, sinon on boucle
Si TableOrigine[PosCourante].Fin = faux alors
TableOrigine.PosSuivante //Saut à la ligne suivante dans la table dorigine
RecursSearch (TableOrigine, TableSauvegarde) //Recursion
Fin Si
Fin Pour
Fin Procedure
Quelquun saurais-til, par hasard, ou trouver un exemple dalgorithme pouvant résoudre ce probleme sur lequel je marrache les cheveux depuis déjà beaucoup trop longtemps ??
Merci davance
Bye