Johnson Trotter

curtis -  
BunoCS Messages postés 15952 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour à tous, excusez-moi mais j'ai un problème, je voudrais réaliser un programme en java qui affiche toutes les permutations d'après l'algorithme de Johnson Trotter et suivant le type que l'on choisit (Nombre ou Lettres) , il doit pouvoir réaliser ceci par exemple:

pour des nombres

pour n=3

123
132
312
321
231
213

pour des lettres

pour n=3

on aura

ABC
ACB
CAB
CBA
BCA
BAC

Merci beaucoup pour une solution rapide!!!
A voir également:

3 réponses

KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Tu peux faire cela avec plusieurs boucles imbriquées ou avec une classe au comportement similaire comme celle ci :

https://codes-sources.commentcamarche.net/source/100071-enumerer-un-ensemble-comme-si-on-avait-des-boucles-imbriquees
0
BunoCS Messages postés 15952 Date d'inscription   Statut Modérateur Dernière intervention   3 918
 
0o
Je ne connaissais pas cette manière de faire. ça a l'air assez puissant
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
"ça a l'air assez puissant" Pas encore assez, ce n'est pas vraiment optimisé ^^'
C'est le genre de code qui a un intérêt pour simplifier le développement et régler des problèmes comme la dynamisation du nombre de boucles. Mais il n'est pas possible de faire aussi efficace que de vraies boucles imbriquées. Du coup je n'ai pas vraiment chercher à l'efficacité et je me retrouve actuellement avec un temps d'itération 4 fois plus long (avec doublons) voire 10 fois plus long (sans doublon). C'est un peu moche mais ça se comprend facilement par l'appel des différentes méthode (qui prennent du temps), l'utilisation des map, etc. Et encore je n'ai pas mis de synchronisation, ce qui pourraît être nécessaire, et alourdirai encore plus le temps de calcul...
Bref, le qualificatif "puissant" n'est peut-être pas le plus approprié ;-)
0
BunoCS Messages postés 15952 Date d'inscription   Statut Modérateur Dernière intervention   3 918
 
A l'occasion, j'y jetterais un oeil en tout cas ;)
0
curtis
 
Merci déja d'avoir repondu, mais j'insiste sur l'ordre que j'ai donné!!!

je voudrais qu'après avoir donné un order et defini le type, que le resultat soit le meme que celui que j'ai saisi précédement, merci pour la compréhension
0
BunoCS Messages postés 15952 Date d'inscription   Statut Modérateur Dernière intervention   3 918
 
0
curtis
 
Merci pour le lien, je me regale déjà!!!
0