Se connecter avec
S'enregistrer | Connectez-vous

Generer des combinaisons - Structure en Arbre

Dernière réponse : dans Programmation

Bonjour,

J'ai un problème d'arrangement à résoudre:
J"ai des objets (Strings ou autres objets) à arranger suivant toutes les combinaisons possibles : par exemples si mes objets sont A,B,C
mon programme doit générer la liste suivante:

ABC-ACB-BAC-BCA-CAB-CBA

Le nombre peut aller à quelques dizaines! soit 3628800 combinaisons par exemple pour 10 objets (factoriel 10)
J'ai eu l'idée d'utiliser un structure d'arbre comme illustré dans le screenshot ci dessous(illustré par le contrôle TreeView)
http://fr.tinypic.com/view.php?pic=f36p8i&s=6

J'ai deux question:

1) Est ce qu'il y a une meilleure méthode pour effectuer cette tache

2) J'utilise maintenant le contrôle TreeView mais ça ne me permet pas de stocker des objets quelconques et c'est lourd pour des long traitements. Est ce qu'il y a des classes prêtes qui permettent de stocker des arbres (n-aires)?

Je vous remercie d'avance
Lassé par la pub ? Créez un compte

Meilleure solution

Expert Programmation

en C++, il existe une fonction toute faite pour ça : std::next_permutation

Une fois mis dans une boucle, tu peux passer d'une permutation à la suivante en un clin d'oeil.

Je me souviens pas avoir vu ce genre de fonction en java/pascal, mais ça existe surement dans une librairie sinon.
Expert Programmation

Salut,

Il faudrait que tu te crées tes propres objets.
Le VB n'est pas peut être pas le meilleur des langages pour ce genre de chose.
Connais-tu le Java, le C++ ou le Pascal Objet ? Si oui, je t'invite à te tourner vers ces langages, bien plus riches.

VB permet surtout de réutiliser des briques toutes faîtes.

Bonjour,
Merci pour la réponse
Citation :

Le VB n'est pas peut être pas le meilleur des langages pour ce genre de chose.
Connais-tu le Java, le C++ ou le Pascal Objet ? Si oui, je t'invite à te tourner vers ces langages, bien plus riches.

Java n'est il pas trés lent pour des traitements aussi longs!
Pascal me parait peu utilisé
C++ parait plus adéquat mais je me suis familiarisé avec VB que je trouve le plus facile.
Expert Programmation

Java, lent ? M'enfin, VB est bien pire !
Le Pascal, souvent étudié en fac ou en école, est utilisé par le très moderne Delphi, dans une version Objet très agréable à utiliser, Borland étant un précurseur des EDI RAD.
Le C++ est LE langage objet par excellence. Ni le premier, ni forcément le meilleur, il reste cependant la référence. Basé sur le C, il ne reste que "orienté objet" et non pas "full object". Permissif au possible, d'où ça mauvaise réputation, il est sans garde-fou, aussi, le novice ou le programmeur peu consciencieux pourron faire plus d'erreur que de lignes de code.

Si tu trouves VB facile, c'est que justement, il est fait pour réutiliser des objets tout faits. Il est cependant possible d'en créer soi-même.

Sinon, il reste aussi le bon vieux C, avec lequel tu pourrais très bien t'en sortir.

-----------------------------------

Quelle version de VB utilises-tu ?
Expert Programmation

Batchy +1
(Sauf s'il s'agissait d'un exercice scolaire ! :o  )

amgab2003, Alors cela ne te convainc pas de la supériorité de certains langages par rapport à d'autres ;)  ?
Lassé par la pub ? Créez un compte