Johnson Trotter

Fermé
curtis - 12 oct. 2013 à 20:02
BunoCS Messages postés 15495 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 23 octobre 2024 - 13 oct. 2013 à 21:17
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 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
12 oct. 2013 à 21:05
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 15495 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 23 octobre 2024 3 909
12 oct. 2013 à 21:45
0o
Je ne connaissais pas cette manière de faire. ça a l'air assez puissant
0
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
13 oct. 2013 à 20:36
"ç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 15495 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 23 octobre 2024 3 909
13 oct. 2013 à 21:17
A l'occasion, j'y jetterais un oeil en tout cas ;)
0
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 15495 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 23 octobre 2024 3 909
12 oct. 2013 à 21:47
0
Merci pour le lien, je me regale déjà!!!
0