algorithme de permutation et rotation cyclik - C++ - Programmation
MarshPosté le 15-03-2008 à 12:01:11
Bonjour j ai une épine dans le pied j espère trouvé des éléments de répons. J ai une liste d’élément chaînés implémenté en c++ mais le langage importe peut Je voudrais trouver tous les ordres possibles. Exemple : j ai une machine qui réalise 5 taches quelle est l ensemble des ordres possible Vous me diriez 5 !=120 mais comment faire pour avoir l’ensemble de ces ordres possibles et les affiché.(ABCDE) J ai utilisé une approche algorithmique en utilisant de permutation et rotation sur l ensemble. J explique : je me fixe sur une tache je l a permute jusqu a la fin a chaque permutation j applique des rotations ABCDE : rotation1 :BCDEA rotation2 :CDEAB rotation3 DEABC rotation4 EABCD rotation5 : ABCDE permutation (A ,B) BACDE appliqué la rotation de nouveau. Mais je n ai pas tous les cas possibles qui devrais : 1-ABCDE : Applique les rotations 5 fois 2-ABCED : Applique les rotations 5 fois 3-ABDCE : Applique les rotations 5 fois 4-ABDEC : Applique les rotations 5-ABEDC : Applique les rotations 6-ABEDC : Applique les rotations 7-ACBED : Applique les rotations 8-ACBDE : Applique les rotations 9-ACDBE : Applique les rotations 10-ACDEB : Applique les rotations 11-ACEDB : Applique les rotations 12-ACEBD : Applique les rotations 13-ADBEC : Applique les rotations 14-ADBCE : Applique les rotations 15-ADCBE : Applique les rotations 16-ADCEB : Applique les rotations 17-ADEBC : Applique les rotations 18-ADECB : Applique les rotations 19-AEBCD : Applique les rotations 20-AEBDC : Applique les rotations 21-AECBD : Applique les rotations 22-AECDB : Applique les rotations 23-AEDCB : Applique les rotations 24-AEDBC : Applique les rotations Nous savons 24 permutations et cinq rotation par permutation ce qui nous donne 120 solutions possible mais comment faire pour généré les 24 permutations sans répété une seule oui bien répété le moins de fois possible ? SI VOUS AVEZ UN ALGORITHME QUI LE FAIT,? MERCI D AVANCE
Marsh Posté le 15-03-2008 à 12:01:11
Bonjour j ai une épine dans le pied j espère trouvé des éléments de répons.
J ai une liste d’élément chaînés implémenté en c++ mais le langage importe peut
Je voudrais trouver tous les ordres possibles.
Exemple : j ai une machine qui réalise 5 taches quelle est l ensemble des ordres possible
Vous me diriez 5 !=120 mais comment faire pour avoir l’ensemble de ces ordres possibles et les affiché.(ABCDE)
J ai utilisé une approche algorithmique en utilisant de permutation et rotation sur l ensemble.
J explique : je me fixe sur une tache je l a permute jusqu a la fin a chaque permutation j applique des rotations
ABCDE :
rotation1 :BCDEA
rotation2 :CDEAB
rotation3 DEABC
rotation4 EABCD
rotation5 : ABCDE
permutation (A ,B) BACDE
appliqué la rotation de nouveau.
Mais je n ai pas tous les cas possibles qui devrais :
1-ABCDE : Applique les rotations 5 fois
2-ABCED : Applique les rotations 5 fois
3-ABDCE : Applique les rotations 5 fois
4-ABDEC : Applique les rotations
5-ABEDC : Applique les rotations
6-ABEDC : Applique les rotations
7-ACBED : Applique les rotations
8-ACBDE : Applique les rotations
9-ACDBE : Applique les rotations
10-ACDEB : Applique les rotations
11-ACEDB : Applique les rotations
12-ACEBD : Applique les rotations
13-ADBEC : Applique les rotations
14-ADBCE : Applique les rotations
15-ADCBE : Applique les rotations
16-ADCEB : Applique les rotations
17-ADEBC : Applique les rotations
18-ADECB : Applique les rotations
19-AEBCD : Applique les rotations
20-AEBDC : Applique les rotations
21-AECBD : Applique les rotations
22-AECDB : Applique les rotations
23-AEDCB : Applique les rotations
24-AEDBC : Applique les rotations
Nous savons 24 permutations et cinq rotation par permutation ce qui nous donne 120 solutions possible mais comment faire pour généré les 24 permutations sans répété une seule oui bien répété le moins de fois possible ?
SI VOUS AVEZ UN ALGORITHME QUI LE FAIT,? MERCI D AVANCE