Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3462 connectés 

  FORUM HardWare.fr
  Programmation
  Algo

  Algorithme de permutations

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Algorithme de permutations

n°1272237
Pookiz
Posté le 23-12-2005 à 09:56:58  profilanswer
 

voilà mon problème, le but c'est d'écrire une fonction récursive permutation(n) qui renvoie la liste contenant toutes les permutations des chiffres 1 à n. Par exemple permutation(2)->[[1,2],[2,1]]
On me done deux types de liste : listesimple du genre [1,2] et listedansliste du genre [[1,2],[2,1]]
Et on me donne 4 fonctions que je peux admettre et utiliser :  
 
copie(liste) qui renvoie une copie des éléments de la liste
insére(l,k,p) qui insère l'élément p dans la liste l avant l'élément de rang k
ajoutefin(listedansliste,listesimple) qui rajoute listesimple comme dernier élément de liste dans liste.
 
On peut aussi utiliser longueur(l) qui renvoie la longueur d'une liste
 
Et avec ça je n'arrive quand meme pas. Parce que admettons que je teste pour n=3, il faut que je fasse à partir de la permutation de 2 qui est [[1,2],[2,1]] mais je ne sais pas commetn atteindre le premier élément [1,2] de cette liste pour insérer le 3 après.
 
Pouvez vous m'aider?

mood
Publicité
Posté le 23-12-2005 à 09:56:58  profilanswer
 

n°1272275
durkheim
Posté le 23-12-2005 à 10:30:26  profilanswer
 

"Et avec ça je n'arrive quand meme pas. Parce que admettons que je teste pour n=3, il faut que je fasse à partir de la permutation de 2 qui est [[1,2],[2,1]] mais je ne sais pas commetn atteindre le premier élément [1,2] de cette liste pour insérer le 3 après. "
 
Pourrais tu expliquer ton raisonnement? Je ne comprends pas...

n°1272307
Pookiz
Posté le 23-12-2005 à 10:45:40  profilanswer
 

eh bien en fait pour faire les permutatiosn de 1 à 3 à partir des permutations de 1 à 2 il faut ajouter 3 en première position dans [1,2] puis au milieu puis à la fin, comme ça on obtient [3,1,2],[1,3,2],[1,2,3] et on fait la meme chose avec [2,1]  et on a    [3,2,1],[2,3,1],[2,1,3] et on a bien toutes les permutations de 1 à 3 donc on utilise insere([1,2],k,3) pour k=0 jusqu'à longueur [1,2] mais je ne sais pas comment prendre [1,2] dans [[1,2][2,1]].  
Est-ce que je suis plus claire là?

n°1272324
durkheim
Posté le 23-12-2005 à 11:01:20  profilanswer
 

Oui, tu est bien plus claire.
 
Tu ne crois pas que tu pourrais supposer que listedansliste(i) renvoie une listesimple?

n°1272333
Pookiz
Posté le 23-12-2005 à 11:08:59  profilanswer
 

oui je pourrais et je pense que c'est ce que je ferais si je trouve rien d'autre mais je suis pas sure que ce soit comme ça puisque jusqu'à présent je n'avais travaillé que sur les listes chainées et là c'ets interdit de les utiliser Merci pour toute ton aide en tout cas

n°1274722
katun
Posté le 29-12-2005 à 23:35:58  profilanswer
 

salut! je suis curieux de savoir si tu a resolu cet algo!
si oui peut tu le posté sur ce topic merci


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Algo

  Algorithme de permutations

 

Sujets relatifs
Algorithme pour trouver le chemin le plus coursalgorithme et programation pb
Algorithme : Test combinatoire !Algorithme Palindromique!!
L'algorithme de choix d'un conteneur STLCherche cours algorithme
Combinaison et permutations en delphiAlgorithme Java/ Struts.
algorithme[Algorithme] Stockage film sur DVD
Plus de sujets relatifs à : Algorithme de permutations


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)