Le mot le plus long

nabil.choukri Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   -  
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

SVP ça fait une semaine que je cherche un algo qui me permet de générer toutes les combinaisons possibles à partir d'une liste des lettres !

Par exemple la liste suivante (A,B,C) doit me permettre d'obtenir le résultat suivant : AB,AC,BA,BC,CA,CB.

je trouve souvent des parties des programmes codées en Python, un langage que je connais pas donc j'aimerais que vous m'aidez :)

1 réponse

fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Bonjour,

Si tu as le programme en python, tu devrais pouvoir comprendre la logique et en déduire l'algorithme.

Le plus simple est de le faire de manière récursive.

Si 1 seule lettre : affichage de la lettre
Sinon, boucle pour choisir chacune des lettres, et on rappelle la fonction sur le tableau (moins le caractère).

Je te laisse mettre en ordre tout ça.
N'hésite pas à faire une proposition pour qu'on puisse te corriger.
0
nabil.choukri Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
Merci pour ta réponse :)

pour l'instant je vais te faire une proposition en algo :

Tab[]={a,b,c,d,e,f,g,h,i,j}
N=10 // la longueur ou le nombre de mes lettres

if (n==1) afficher tab[0]
else
for (i=0; i<N; i++)
// c'est là que je sais pas quoi faire :/ :(
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Ce n'est pas de l'algo, mais du C, enfin ça y ressemble.
Sinon, tu n'as pas défini n.

Il faut faire déjà définir le prototype de la fonction :
listeCombinaison(tableau, taille, buffer)

Après réflexion, la fin de ta fonction est si n==0, tu affiches buffer
Sinon, tu parcours tous les éléments du tableau, tu supprimes l'élément du tableau, tu concatènes l'élément supprimé à la fin de buffer, tu appelles la fonction listeCombinaison avec une taille -1. Puis tu remets l'élément dans le tableau.
0