-
algorithme anagramme
bonjour a tous,
es ce que quelqu un pourai m aidez a trouver un algorithme pour trouver tous les anagrammes de 6 nombres.
exemple: on donne les nombre 1 2 3 4 5 6
et il faut que je trouve les 720 combinaisons possible.
j ai trouvé une méthode sur papier mais assez difficile a implémenter du fait du nombre de condition assez nombreuse et donc assez lent.
merci
-
Donne-nous ton algo, on dira ce qui peut etre ameliore... (si on le peut ;) )
-
voici mon algo en quelques mots...
on commence par :
1 2 3 4 5 6
1 2 3 4 6 5 // si dernier élément > avant dernier --> on permute
1 2 3 5 4 6 // sinon si 4eme élément < 6 et 5 n est pas déja affecté au premier ni au 2eme ni au 3eme éllément alors faire 4eme élément+1 et remettre au 5eme et 6eme éllément les nombre restant dans l ordre croissant.
1 2 3 5 6 4
1 2 3 6 4 5
1 2 3 6 5 4
1 2 4 3 5 6 // idem mais en augmentant plus en amont
1 2 4 3 6 5
1 2 4 5 6 3 // ici on ne peut passer le 4eme élément a 4 car 4 est déja utilisé au 3eme élément
etc....
ca doit pas etre tres clair, parce que ca l est déja pas trop dans ma tete.
avec cette méthode, plus on doit changé un éllément du début, plus il y a de condition a vérifier.
-
Au lieu de partir sur l'option permutation/mélange d'un ensemble de départ, il me paraîtrait plus pertinent de partir sur une génération pure et simple de toutes les combinaisons possibles, avec une série de boucles imbriquées ou une procédure récursive ...
-
-
merci beaucoup ca marche tres bien.