Casse tête

Yeles - 18 mars 2001 à 02:44
 georges - 18 mars 2001 à 22:39
Bonjour à tous,
voici un casse tête sur lequel je m'arrache les cheveux
je recherche une formule qui pourrait me permettre d'afficher dans un listbox
tous les mots possibles avec une chaine de caractères entrée :
exemple :
deux lettres t et r
deux possibilités tr ou rt
j'arrive à extraire toutes les lettres d'un mot donné mais je n'arrive pas à afficher toutes les possibilités
en langage C c'est très simple en utilisant la fonction stacks mais y a -til un équivalent en VB ???
merci pour votre aide
avec 5 lettres 120 possibilités
avec 9 lettres + de 360000 !!!

4 réponses

Lightness1024!
18 mars 2001 à 11:59
-------------------------------
Réponse au message :
-------------------------------

Voci un bout de code que j'ai trouvé:

letr$ = ChaineAvecLesLettres as string
calc = CalculKiTouveLeNbDePossibilites _as long

for a = 1 to calc
0
Lightness1024!
18 mars 2001 à 12:12
excuse kan on appuie sur espace le courrier part, finalement ca ne marche pas le truc ke g t en train d'ecrire.

@+!
0
AAAaaaarrg
Merci d'avoir cherché, effectivement, le problème est très simple, mais la formule très compliqué

En C j'utilise une formule de récursivité, mais je n'arive pas a la transposer en VB :(
0
-------------------------------
Réponse au message :
-------------------------------

-------------------------------
Réponse au message :
-------------------------------

Voci un bout de code que j'ai trouvé:

letr$ = ChaineAvecLesLettres as string
calc = CalculKiTouveLeNbDePossibilites _as long

for a = 1 to calc

Dis donc c'est compliqué ton truc. J'ai cherché et j'ai pas trouvé de solution.
Je t'envoie quand même sur quoi je suis parti des fois que ça pourrai t'aider.

1) Mettre la chaine de caractères par ordre alphabétique:
CHIEN --> CEHIN et enregistrer dans une variable.
2) Le nombre de solutions est n! (factorielle du nombre de lettres)
3)Représenter chaque solution par une séquence numérique.
exemple: 54121
le dernier chiffre toujours = 1
le 4ème 1 ou 2
le 3 ème 1, 2 ou 3
le 2 ème 1, 2, 3 ou 4
le 1er 1, 2, 3, 4 ou 5
4) Lire successivement les caractères dans la variable alphabétique
et les retirer de la liste. Par exemple pour la séquence 54121
on cherche la lettre placé en 5 ème posisition dans CEHIN.
On lit la lettre N et on la supprime de la variable: elle devient CEHI.
4 nous donne I
1 ------> C
2 ------> H , qui est passé en 2ème position
1 ------> E
54121 donne donc NICHE.
5) On fait la même chose pour chaque séquence numérique trouvée.

J'espère avoir été assez clair et que cela peut t'aider.
-------------------------------
0
Rejoignez-nous